SkillLink 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- skilllink-0.1.0/PKG-INFO +180 -0
- skilllink-0.1.0/README.md +162 -0
- skilllink-0.1.0/SkillLink.egg-info/PKG-INFO +180 -0
- skilllink-0.1.0/SkillLink.egg-info/SOURCES.txt +8 -0
- skilllink-0.1.0/SkillLink.egg-info/dependency_links.txt +1 -0
- skilllink-0.1.0/SkillLink.egg-info/requires.txt +1 -0
- skilllink-0.1.0/SkillLink.egg-info/top_level.txt +1 -0
- skilllink-0.1.0/pyproject.toml +34 -0
- skilllink-0.1.0/setup.cfg +4 -0
- skilllink-0.1.0/setup.py +15 -0
skilllink-0.1.0/PKG-INFO
ADDED
@@ -0,0 +1,180 @@
|
|
1
|
+
Metadata-Version: 2.4
|
2
|
+
Name: SkillLink
|
3
|
+
Version: 0.1.0
|
4
|
+
Summary: A Modern way to sync skills
|
5
|
+
Author: Tristan McBride Sr.
|
6
|
+
Author-email: "Tristan McBride Sr." <142635792+TristanMcBrideSr@users.noreply.github.com>
|
7
|
+
Maintainer-email: "Tristan McBride Sr." <142635792+TristanMcBrideSr@users.noreply.github.com>
|
8
|
+
License-Expression: Apache-2.0
|
9
|
+
Project-URL: Homepage, https://github.com/TristanMcBrideSr
|
10
|
+
Keywords: AI,Agents,Skills,Productivity,Automation,Voice Assistant,Chatbot,LLM,Large Language Model
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
12
|
+
Classifier: Operating System :: OS Independent
|
13
|
+
Classifier: Intended Audience :: Developers
|
14
|
+
Requires-Python: >=3.10
|
15
|
+
Description-Content-Type: text/markdown
|
16
|
+
Requires-Dist: requests
|
17
|
+
Dynamic: author
|
18
|
+
|
19
|
+
|
20
|
+
---
|
21
|
+
|
22
|
+
# SkillLink
|
23
|
+
|
24
|
+
**SkillLink** is a flexible Python utility for syncing code files (skills, scripts, or any directory content) from a folder in a GitHub repository to your local directory.
|
25
|
+
Supports public and private repos, selective file syncing, local-over-remote file protection, and easy integration.
|
26
|
+
|
27
|
+
---
|
28
|
+
|
29
|
+
## Features
|
30
|
+
|
31
|
+
* **Sync entire folders** or select specific files.
|
32
|
+
* **Skip or override** existing local files.
|
33
|
+
* **Supports private repos** (via GitHub token).
|
34
|
+
* **Branch selection**—sync from any branch, not just master/main.
|
35
|
+
* **Simple, readable code**—ready to drop into any project.
|
36
|
+
* **Preserves your local changes** by default.
|
37
|
+
|
38
|
+
---
|
39
|
+
|
40
|
+
## Installation
|
41
|
+
|
42
|
+
Simply copy `SkillLink` into your project, or package as you like.
|
43
|
+
|
44
|
+
Dependencies:
|
45
|
+
|
46
|
+
* Python 3.10+
|
47
|
+
* `requests`
|
48
|
+
|
49
|
+
---
|
50
|
+
|
51
|
+
## Usage
|
52
|
+
|
53
|
+
### **1. Basic Example (Sync All Files)**
|
54
|
+
|
55
|
+
```python
|
56
|
+
from skilllink import SkillLink
|
57
|
+
|
58
|
+
syncer = SkillLink(
|
59
|
+
githubRepo='TristanMcBrideSr/SkillForge',
|
60
|
+
repoFolder='SkillForge',
|
61
|
+
localDir='./skills'
|
62
|
+
)
|
63
|
+
syncer.startSync()
|
64
|
+
```
|
65
|
+
|
66
|
+
### **2. Sync Only Specific Files**
|
67
|
+
|
68
|
+
```python
|
69
|
+
syncer = SkillLink(
|
70
|
+
githubRepo='your-username/your-repo',
|
71
|
+
repoFolder='MySkills',
|
72
|
+
localDir='./skills'
|
73
|
+
)
|
74
|
+
# Only sync 'weather.py' and 'research.py'
|
75
|
+
syncer.startSync(skillList=['weather', 'research'])
|
76
|
+
```
|
77
|
+
|
78
|
+
### **3. Override Existing Local Files**
|
79
|
+
|
80
|
+
```python
|
81
|
+
syncer = SkillLink(
|
82
|
+
githubRepo='TristanMcBrideSr/SkillForge',
|
83
|
+
repoFolder='SkillForge',
|
84
|
+
localDir='./skills'
|
85
|
+
)
|
86
|
+
# Force override any local file with the downloaded version
|
87
|
+
syncer.startSync(override=True)
|
88
|
+
```
|
89
|
+
|
90
|
+
### **4. Sync From a Private Repo**
|
91
|
+
|
92
|
+
```python
|
93
|
+
syncer = SkillLink(
|
94
|
+
githubRepo='your-username/private-repo',
|
95
|
+
repoFolder='MySkills',
|
96
|
+
localDir='./skills'
|
97
|
+
)
|
98
|
+
# Provide a GitHub token (classic or fine-grained with repo read access)
|
99
|
+
syncer.startSync(githubToken='YOUR_GITHUB_TOKEN')
|
100
|
+
```
|
101
|
+
|
102
|
+
### **5. Sync From a Different Branch**
|
103
|
+
|
104
|
+
```python
|
105
|
+
syncer = SkillLink(
|
106
|
+
githubRepo='TristanMcBrideSr/SkillForge',
|
107
|
+
repoFolder='SkillForge',
|
108
|
+
localDir='./skills'
|
109
|
+
)
|
110
|
+
syncer.startSync(branch='dev') # Sync from 'dev' branch
|
111
|
+
```
|
112
|
+
|
113
|
+
---
|
114
|
+
|
115
|
+
## Parameters
|
116
|
+
|
117
|
+
### `SkillLink` constructor
|
118
|
+
|
119
|
+
* **githubRepo**: GitHub repo in the form `"owner/repo"` (required)
|
120
|
+
* **repoFolder**: Folder inside the repo to sync from (required)
|
121
|
+
* **localDir**: Local directory to sync files to (required)
|
122
|
+
|
123
|
+
### `startSync(**kwargs)`
|
124
|
+
|
125
|
+
* **skillList** (`list`): Only these files will be synced (by name, `.py` optional).
|
126
|
+
* **override** (`bool`): If `True`, always overwrite existing local files.
|
127
|
+
* **githubToken** (`str`): Personal GitHub token for private repo access.
|
128
|
+
* **branch** (`str`): Branch to sync from (default `"master"`).
|
129
|
+
|
130
|
+
---
|
131
|
+
|
132
|
+
## How It Works
|
133
|
+
|
134
|
+
* Downloads a zip of the specified repo+branch.
|
135
|
+
* Extracts just the folder you specify.
|
136
|
+
* Copies each file:
|
137
|
+
|
138
|
+
* **By default:** only new files are copied (existing files are untouched).
|
139
|
+
* **With `override=True`:** always overwrites local files.
|
140
|
+
* Lets you pick which files to sync, or sync all.
|
141
|
+
|
142
|
+
---
|
143
|
+
|
144
|
+
## Error Handling
|
145
|
+
|
146
|
+
* Raises if folders/files are missing.
|
147
|
+
* Logs sync actions and errors to Python logger.
|
148
|
+
* Skips files that already exist locally, unless `override` is set.
|
149
|
+
|
150
|
+
---
|
151
|
+
|
152
|
+
## Example: Complete Workflow
|
153
|
+
|
154
|
+
```python
|
155
|
+
syncer = SkillLink(
|
156
|
+
githubRepo='my-org/myrepo',
|
157
|
+
repoFolder='skills',
|
158
|
+
localDir='./skills'
|
159
|
+
)
|
160
|
+
syncer.startSync(
|
161
|
+
skillList=['my_skill', 'other_skill.py'],
|
162
|
+
override=False,
|
163
|
+
githubToken=os.getenv('GITHUB_TOKEN'),
|
164
|
+
branch='main'
|
165
|
+
)
|
166
|
+
```
|
167
|
+
|
168
|
+
---
|
169
|
+
|
170
|
+
## License
|
171
|
+
|
172
|
+
This project is licensed under the [Apache License, Version 2.0](LICENSE).
|
173
|
+
Copyright 2025 Tristan McBride Sr.
|
174
|
+
|
175
|
+
---
|
176
|
+
|
177
|
+
**Authors:**
|
178
|
+
- Tristan McBride Sr.
|
179
|
+
- Sybil
|
180
|
+
|
@@ -0,0 +1,162 @@
|
|
1
|
+
|
2
|
+
---
|
3
|
+
|
4
|
+
# SkillLink
|
5
|
+
|
6
|
+
**SkillLink** is a flexible Python utility for syncing code files (skills, scripts, or any directory content) from a folder in a GitHub repository to your local directory.
|
7
|
+
Supports public and private repos, selective file syncing, local-over-remote file protection, and easy integration.
|
8
|
+
|
9
|
+
---
|
10
|
+
|
11
|
+
## Features
|
12
|
+
|
13
|
+
* **Sync entire folders** or select specific files.
|
14
|
+
* **Skip or override** existing local files.
|
15
|
+
* **Supports private repos** (via GitHub token).
|
16
|
+
* **Branch selection**—sync from any branch, not just master/main.
|
17
|
+
* **Simple, readable code**—ready to drop into any project.
|
18
|
+
* **Preserves your local changes** by default.
|
19
|
+
|
20
|
+
---
|
21
|
+
|
22
|
+
## Installation
|
23
|
+
|
24
|
+
Simply copy `SkillLink` into your project, or package as you like.
|
25
|
+
|
26
|
+
Dependencies:
|
27
|
+
|
28
|
+
* Python 3.10+
|
29
|
+
* `requests`
|
30
|
+
|
31
|
+
---
|
32
|
+
|
33
|
+
## Usage
|
34
|
+
|
35
|
+
### **1. Basic Example (Sync All Files)**
|
36
|
+
|
37
|
+
```python
|
38
|
+
from skilllink import SkillLink
|
39
|
+
|
40
|
+
syncer = SkillLink(
|
41
|
+
githubRepo='TristanMcBrideSr/SkillForge',
|
42
|
+
repoFolder='SkillForge',
|
43
|
+
localDir='./skills'
|
44
|
+
)
|
45
|
+
syncer.startSync()
|
46
|
+
```
|
47
|
+
|
48
|
+
### **2. Sync Only Specific Files**
|
49
|
+
|
50
|
+
```python
|
51
|
+
syncer = SkillLink(
|
52
|
+
githubRepo='your-username/your-repo',
|
53
|
+
repoFolder='MySkills',
|
54
|
+
localDir='./skills'
|
55
|
+
)
|
56
|
+
# Only sync 'weather.py' and 'research.py'
|
57
|
+
syncer.startSync(skillList=['weather', 'research'])
|
58
|
+
```
|
59
|
+
|
60
|
+
### **3. Override Existing Local Files**
|
61
|
+
|
62
|
+
```python
|
63
|
+
syncer = SkillLink(
|
64
|
+
githubRepo='TristanMcBrideSr/SkillForge',
|
65
|
+
repoFolder='SkillForge',
|
66
|
+
localDir='./skills'
|
67
|
+
)
|
68
|
+
# Force override any local file with the downloaded version
|
69
|
+
syncer.startSync(override=True)
|
70
|
+
```
|
71
|
+
|
72
|
+
### **4. Sync From a Private Repo**
|
73
|
+
|
74
|
+
```python
|
75
|
+
syncer = SkillLink(
|
76
|
+
githubRepo='your-username/private-repo',
|
77
|
+
repoFolder='MySkills',
|
78
|
+
localDir='./skills'
|
79
|
+
)
|
80
|
+
# Provide a GitHub token (classic or fine-grained with repo read access)
|
81
|
+
syncer.startSync(githubToken='YOUR_GITHUB_TOKEN')
|
82
|
+
```
|
83
|
+
|
84
|
+
### **5. Sync From a Different Branch**
|
85
|
+
|
86
|
+
```python
|
87
|
+
syncer = SkillLink(
|
88
|
+
githubRepo='TristanMcBrideSr/SkillForge',
|
89
|
+
repoFolder='SkillForge',
|
90
|
+
localDir='./skills'
|
91
|
+
)
|
92
|
+
syncer.startSync(branch='dev') # Sync from 'dev' branch
|
93
|
+
```
|
94
|
+
|
95
|
+
---
|
96
|
+
|
97
|
+
## Parameters
|
98
|
+
|
99
|
+
### `SkillLink` constructor
|
100
|
+
|
101
|
+
* **githubRepo**: GitHub repo in the form `"owner/repo"` (required)
|
102
|
+
* **repoFolder**: Folder inside the repo to sync from (required)
|
103
|
+
* **localDir**: Local directory to sync files to (required)
|
104
|
+
|
105
|
+
### `startSync(**kwargs)`
|
106
|
+
|
107
|
+
* **skillList** (`list`): Only these files will be synced (by name, `.py` optional).
|
108
|
+
* **override** (`bool`): If `True`, always overwrite existing local files.
|
109
|
+
* **githubToken** (`str`): Personal GitHub token for private repo access.
|
110
|
+
* **branch** (`str`): Branch to sync from (default `"master"`).
|
111
|
+
|
112
|
+
---
|
113
|
+
|
114
|
+
## How It Works
|
115
|
+
|
116
|
+
* Downloads a zip of the specified repo+branch.
|
117
|
+
* Extracts just the folder you specify.
|
118
|
+
* Copies each file:
|
119
|
+
|
120
|
+
* **By default:** only new files are copied (existing files are untouched).
|
121
|
+
* **With `override=True`:** always overwrites local files.
|
122
|
+
* Lets you pick which files to sync, or sync all.
|
123
|
+
|
124
|
+
---
|
125
|
+
|
126
|
+
## Error Handling
|
127
|
+
|
128
|
+
* Raises if folders/files are missing.
|
129
|
+
* Logs sync actions and errors to Python logger.
|
130
|
+
* Skips files that already exist locally, unless `override` is set.
|
131
|
+
|
132
|
+
---
|
133
|
+
|
134
|
+
## Example: Complete Workflow
|
135
|
+
|
136
|
+
```python
|
137
|
+
syncer = SkillLink(
|
138
|
+
githubRepo='my-org/myrepo',
|
139
|
+
repoFolder='skills',
|
140
|
+
localDir='./skills'
|
141
|
+
)
|
142
|
+
syncer.startSync(
|
143
|
+
skillList=['my_skill', 'other_skill.py'],
|
144
|
+
override=False,
|
145
|
+
githubToken=os.getenv('GITHUB_TOKEN'),
|
146
|
+
branch='main'
|
147
|
+
)
|
148
|
+
```
|
149
|
+
|
150
|
+
---
|
151
|
+
|
152
|
+
## License
|
153
|
+
|
154
|
+
This project is licensed under the [Apache License, Version 2.0](LICENSE).
|
155
|
+
Copyright 2025 Tristan McBride Sr.
|
156
|
+
|
157
|
+
---
|
158
|
+
|
159
|
+
**Authors:**
|
160
|
+
- Tristan McBride Sr.
|
161
|
+
- Sybil
|
162
|
+
|
@@ -0,0 +1,180 @@
|
|
1
|
+
Metadata-Version: 2.4
|
2
|
+
Name: SkillLink
|
3
|
+
Version: 0.1.0
|
4
|
+
Summary: A Modern way to sync skills
|
5
|
+
Author: Tristan McBride Sr.
|
6
|
+
Author-email: "Tristan McBride Sr." <142635792+TristanMcBrideSr@users.noreply.github.com>
|
7
|
+
Maintainer-email: "Tristan McBride Sr." <142635792+TristanMcBrideSr@users.noreply.github.com>
|
8
|
+
License-Expression: Apache-2.0
|
9
|
+
Project-URL: Homepage, https://github.com/TristanMcBrideSr
|
10
|
+
Keywords: AI,Agents,Skills,Productivity,Automation,Voice Assistant,Chatbot,LLM,Large Language Model
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
12
|
+
Classifier: Operating System :: OS Independent
|
13
|
+
Classifier: Intended Audience :: Developers
|
14
|
+
Requires-Python: >=3.10
|
15
|
+
Description-Content-Type: text/markdown
|
16
|
+
Requires-Dist: requests
|
17
|
+
Dynamic: author
|
18
|
+
|
19
|
+
|
20
|
+
---
|
21
|
+
|
22
|
+
# SkillLink
|
23
|
+
|
24
|
+
**SkillLink** is a flexible Python utility for syncing code files (skills, scripts, or any directory content) from a folder in a GitHub repository to your local directory.
|
25
|
+
Supports public and private repos, selective file syncing, local-over-remote file protection, and easy integration.
|
26
|
+
|
27
|
+
---
|
28
|
+
|
29
|
+
## Features
|
30
|
+
|
31
|
+
* **Sync entire folders** or select specific files.
|
32
|
+
* **Skip or override** existing local files.
|
33
|
+
* **Supports private repos** (via GitHub token).
|
34
|
+
* **Branch selection**—sync from any branch, not just master/main.
|
35
|
+
* **Simple, readable code**—ready to drop into any project.
|
36
|
+
* **Preserves your local changes** by default.
|
37
|
+
|
38
|
+
---
|
39
|
+
|
40
|
+
## Installation
|
41
|
+
|
42
|
+
Simply copy `SkillLink` into your project, or package as you like.
|
43
|
+
|
44
|
+
Dependencies:
|
45
|
+
|
46
|
+
* Python 3.10+
|
47
|
+
* `requests`
|
48
|
+
|
49
|
+
---
|
50
|
+
|
51
|
+
## Usage
|
52
|
+
|
53
|
+
### **1. Basic Example (Sync All Files)**
|
54
|
+
|
55
|
+
```python
|
56
|
+
from skilllink import SkillLink
|
57
|
+
|
58
|
+
syncer = SkillLink(
|
59
|
+
githubRepo='TristanMcBrideSr/SkillForge',
|
60
|
+
repoFolder='SkillForge',
|
61
|
+
localDir='./skills'
|
62
|
+
)
|
63
|
+
syncer.startSync()
|
64
|
+
```
|
65
|
+
|
66
|
+
### **2. Sync Only Specific Files**
|
67
|
+
|
68
|
+
```python
|
69
|
+
syncer = SkillLink(
|
70
|
+
githubRepo='your-username/your-repo',
|
71
|
+
repoFolder='MySkills',
|
72
|
+
localDir='./skills'
|
73
|
+
)
|
74
|
+
# Only sync 'weather.py' and 'research.py'
|
75
|
+
syncer.startSync(skillList=['weather', 'research'])
|
76
|
+
```
|
77
|
+
|
78
|
+
### **3. Override Existing Local Files**
|
79
|
+
|
80
|
+
```python
|
81
|
+
syncer = SkillLink(
|
82
|
+
githubRepo='TristanMcBrideSr/SkillForge',
|
83
|
+
repoFolder='SkillForge',
|
84
|
+
localDir='./skills'
|
85
|
+
)
|
86
|
+
# Force override any local file with the downloaded version
|
87
|
+
syncer.startSync(override=True)
|
88
|
+
```
|
89
|
+
|
90
|
+
### **4. Sync From a Private Repo**
|
91
|
+
|
92
|
+
```python
|
93
|
+
syncer = SkillLink(
|
94
|
+
githubRepo='your-username/private-repo',
|
95
|
+
repoFolder='MySkills',
|
96
|
+
localDir='./skills'
|
97
|
+
)
|
98
|
+
# Provide a GitHub token (classic or fine-grained with repo read access)
|
99
|
+
syncer.startSync(githubToken='YOUR_GITHUB_TOKEN')
|
100
|
+
```
|
101
|
+
|
102
|
+
### **5. Sync From a Different Branch**
|
103
|
+
|
104
|
+
```python
|
105
|
+
syncer = SkillLink(
|
106
|
+
githubRepo='TristanMcBrideSr/SkillForge',
|
107
|
+
repoFolder='SkillForge',
|
108
|
+
localDir='./skills'
|
109
|
+
)
|
110
|
+
syncer.startSync(branch='dev') # Sync from 'dev' branch
|
111
|
+
```
|
112
|
+
|
113
|
+
---
|
114
|
+
|
115
|
+
## Parameters
|
116
|
+
|
117
|
+
### `SkillLink` constructor
|
118
|
+
|
119
|
+
* **githubRepo**: GitHub repo in the form `"owner/repo"` (required)
|
120
|
+
* **repoFolder**: Folder inside the repo to sync from (required)
|
121
|
+
* **localDir**: Local directory to sync files to (required)
|
122
|
+
|
123
|
+
### `startSync(**kwargs)`
|
124
|
+
|
125
|
+
* **skillList** (`list`): Only these files will be synced (by name, `.py` optional).
|
126
|
+
* **override** (`bool`): If `True`, always overwrite existing local files.
|
127
|
+
* **githubToken** (`str`): Personal GitHub token for private repo access.
|
128
|
+
* **branch** (`str`): Branch to sync from (default `"master"`).
|
129
|
+
|
130
|
+
---
|
131
|
+
|
132
|
+
## How It Works
|
133
|
+
|
134
|
+
* Downloads a zip of the specified repo+branch.
|
135
|
+
* Extracts just the folder you specify.
|
136
|
+
* Copies each file:
|
137
|
+
|
138
|
+
* **By default:** only new files are copied (existing files are untouched).
|
139
|
+
* **With `override=True`:** always overwrites local files.
|
140
|
+
* Lets you pick which files to sync, or sync all.
|
141
|
+
|
142
|
+
---
|
143
|
+
|
144
|
+
## Error Handling
|
145
|
+
|
146
|
+
* Raises if folders/files are missing.
|
147
|
+
* Logs sync actions and errors to Python logger.
|
148
|
+
* Skips files that already exist locally, unless `override` is set.
|
149
|
+
|
150
|
+
---
|
151
|
+
|
152
|
+
## Example: Complete Workflow
|
153
|
+
|
154
|
+
```python
|
155
|
+
syncer = SkillLink(
|
156
|
+
githubRepo='my-org/myrepo',
|
157
|
+
repoFolder='skills',
|
158
|
+
localDir='./skills'
|
159
|
+
)
|
160
|
+
syncer.startSync(
|
161
|
+
skillList=['my_skill', 'other_skill.py'],
|
162
|
+
override=False,
|
163
|
+
githubToken=os.getenv('GITHUB_TOKEN'),
|
164
|
+
branch='main'
|
165
|
+
)
|
166
|
+
```
|
167
|
+
|
168
|
+
---
|
169
|
+
|
170
|
+
## License
|
171
|
+
|
172
|
+
This project is licensed under the [Apache License, Version 2.0](LICENSE).
|
173
|
+
Copyright 2025 Tristan McBride Sr.
|
174
|
+
|
175
|
+
---
|
176
|
+
|
177
|
+
**Authors:**
|
178
|
+
- Tristan McBride Sr.
|
179
|
+
- Sybil
|
180
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
requests
|
@@ -0,0 +1 @@
|
|
1
|
+
|
@@ -0,0 +1,34 @@
|
|
1
|
+
[build-system]
|
2
|
+
requires = ["setuptools>=61.0", "wheel"]
|
3
|
+
build-backend = "setuptools.build_meta"
|
4
|
+
|
5
|
+
[project]
|
6
|
+
name = "SkillLink"
|
7
|
+
version = "0.1.0"
|
8
|
+
description = "A Modern way to sync skills"
|
9
|
+
authors = [
|
10
|
+
{ name="Tristan McBride Sr.", email = "142635792+TristanMcBrideSr@users.noreply.github.com" },
|
11
|
+
]
|
12
|
+
maintainers = [
|
13
|
+
{name = "Tristan McBride Sr.", email = "142635792+TristanMcBrideSr@users.noreply.github.com"}
|
14
|
+
]
|
15
|
+
readme = "README.md"
|
16
|
+
license = "Apache-2.0"
|
17
|
+
license-files = ["LICEN[CS]E.*"]
|
18
|
+
requires-python = ">=3.10"
|
19
|
+
dependencies = [
|
20
|
+
"requests",
|
21
|
+
]
|
22
|
+
# Optional: Use this if you want to expose keywords for searchability
|
23
|
+
keywords = [
|
24
|
+
"AI", "Agents", "Skills", "Productivity", "Automation", "Voice Assistant", "Chatbot", "LLM", "Large Language Model"
|
25
|
+
]
|
26
|
+
# Optional: Classifiers for PyPI
|
27
|
+
classifiers = [
|
28
|
+
"Programming Language :: Python :: 3",
|
29
|
+
"Operating System :: OS Independent",
|
30
|
+
"Intended Audience :: Developers",
|
31
|
+
]
|
32
|
+
|
33
|
+
[project.urls]
|
34
|
+
Homepage = "https://github.com/TristanMcBrideSr"
|
skilllink-0.1.0/setup.py
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
from setuptools import setup, find_packages
|
3
|
+
|
4
|
+
setup(
|
5
|
+
name="SkillLink",
|
6
|
+
version="0.1.0",
|
7
|
+
packages=find_packages(),
|
8
|
+
include_package_data=True,
|
9
|
+
install_requires=[
|
10
|
+
"requests",
|
11
|
+
],
|
12
|
+
author="Tristan McBride Sr.",
|
13
|
+
author_email="TristanMcBrideSr@users.noreply.github.com",
|
14
|
+
description="A Modern way to sync skills",
|
15
|
+
)
|