Home
About
Blog
Products
Forum
Support
Contact
Sunbelt Computer Software
PL/B Language Development and Support
Home
About
Blog
Products
Forum
Support
Contact
codebase-graph-prd-rules/setup.py at main · xsoway/codebase-graph-prd-rules · GitHub
Skip to content
Navigation Menu
Sign in
Appearance settings
Platform
AI CODE CREATION
GitHub Copilot
Write better code with AI
GitHub Copilot app
Direct agents from issue to merge
MCP Registry
Integrate external tools
DEVELOPER WORKFLOWS
Actions
Automate any workflow
Codespaces
Instant dev environments
Issues
Plan and track work
Code Review
Manage code changes
Code Quality
Enforce quality at merge
APPLICATION SECURITY
GitHub Advanced Security
Find and fix vulnerabilities
Code security
Secure your code as you build
Secret protection
Stop leaks before they start
EXPLORE
Why GitHub
Documentation
Blog
Changelog
Marketplace
View all features
Solutions
BY COMPANY SIZE
Enterprises
Small and medium teams
Startups
Nonprofits
BY USE CASE
App Modernization
DevSecOps
DevOps
CI/CD
View all use cases
BY INDUSTRY
Healthcare
Financial services
Manufacturing
Government
View all industries
View all solutions
Resources
EXPLORE BY TOPIC
AI
Software Development
DevOps
Security
View all topics
EXPLORE BY TYPE
Customer stories
Events & webinars
Ebooks & reports
Business insights
GitHub Skills
SUPPORT & SERVICES
Documentation
Customer support
Community forum
Trust center
Partners
View all resources
Open Source
COMMUNITY
GitHub Sponsors
Fund open source developers
PROGRAMS
Security Lab
Maintainer Community
GitHub Stars
Archive Program
REPOSITORIES
Topics
Trending
Collections
Enterprise
ENTERPRISE SOLUTIONS
Enterprise platform
AI-powered developer platform
AVAILABLE ADD-ONS
GitHub Advanced Security
Enterprise-grade security features
Copilot for Business
Enterprise-grade AI features
Premium Support
Enterprise-grade 24/7 support
Pricing
Search
/
Sign in
Sign up
Appearance settings
You signed in with another tab or window.
Reload
to refresh your session.
You signed out in another tab or window.
Reload
to refresh your session.
You switched accounts on another tab or window.
Reload
to refresh your session.
Dismiss alert
{{ message }}
xsoway
codebase-graph-prd-rules
Repository navigation
Code
Issues
Pull requests
Discussions
Actions
Projects
Security and quality
Insights
More
items
Files
Expand file tree
main
Breadcrumbs
codebase-graph-prd-rules
/
setup.py
Copy path
Blame
More file actions
Blame
More file actions
Latest commit
History
History
History
executable file
·
52 lines (43 loc) · 1.92 KB
main
Breadcrumbs
codebase-graph-prd-rules
/
setup.py
Copy path
Top
File metadata and controls
Code
Blame
executable file
·
52 lines (43 loc) · 1.92 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2026/09/24 09:00
# @Filename : setup.py
# @Author : Alan_Hsu
"""构建脚本:把仓库根部的两个 skill 目录作为包数据打进 sdist/wheel。
设计要点:
- 仓库根部 codebase-graph-business-rules/、codebase-graph-module-rules/ 是技能的**唯一事实来源**,
不提交重复副本;本脚本在构建时把它们复制到构建目录的包内 skills/ 下。
- 这样 `uv build` 能产出真正的 sdist + wheel,用户可 pip/uv 安装后获得两份完整技能。
"""
from
__future__
import
annotations
import
shutil
from
pathlib
import
Path
from
setuptools
import
setup
from
setuptools
.
command
.
build_py
import
build_py
ROOT
=
Path
(
__file__
).
parent
.
resolve
()
SKILL_DIRS
=
(
"codebase-graph-business-rules"
,
"codebase-graph-module-rules"
)
SHARE_FILES
=
(
"README.md"
,
"README.zh-CN.md"
,
"LICENSE"
)
class
BuildSkills
(
build_py
):
"""build_py 子类:构建时把根部 skill 目录与共享文档复制进包内。"""
def
run
(
self
)
->
None
:
super
().
run
()
pkg_dir
=
Path
(
self
.
build_lib
)
/
"codebase_graph_prd_rules"
skills_dest
=
pkg_dir
/
"skills"
skills_dest
.
mkdir
(
parents
=
True
,
exist_ok
=
True
)
for
skill
in
SKILL_DIRS
:
src
=
ROOT
/
skill
dest
=
skills_dest
/
skill
if
dest
.
exists
():
shutil
.
rmtree
(
dest
)
shutil
.
copytree
(
src
,
dest
)
# 复制前清理可能残留的字节码/缓存
for
cache
in
dest
.
rglob
(
"__pycache__"
):
shutil
.
rmtree
(
cache
,
ignore_errors
=
True
)
for
name
in
SHARE_FILES
:
shutil
.
copy2
(
ROOT
/
name
,
pkg_dir
/
name
)
# 供运行时定位技能目录。
(
pkg_dir
/
"_asset_manifest.txt"
).
write_text
(
"
\n
"
.
join
([
"skills/"
+
s
for
s
in
SKILL_DIRS
]
+
list
(
SHARE_FILES
))
+
"
\n
"
,
encoding
=
"utf-8"
,
)
setup
(
cmdclass
=
{
"build_py"
:
BuildSkills
})
You can’t perform that action at this time.