xenfra 0.2.9__tar.gz → 0.3.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.
- {xenfra-0.2.9 → xenfra-0.3.0}/PKG-INFO +84 -84
- {xenfra-0.2.9 → xenfra-0.3.0}/README.md +83 -83
- {xenfra-0.2.9 → xenfra-0.3.0}/pyproject.toml +53 -53
- {xenfra-0.2.9 → xenfra-0.3.0}/src/xenfra/commands/__init__.py +3 -3
- {xenfra-0.2.9 → xenfra-0.3.0}/src/xenfra/commands/auth.py +137 -137
- {xenfra-0.2.9 → xenfra-0.3.0}/src/xenfra/commands/auth_device.py +159 -159
- {xenfra-0.2.9 → xenfra-0.3.0}/src/xenfra/commands/deployments.py +666 -484
- {xenfra-0.2.9 → xenfra-0.3.0}/src/xenfra/commands/intelligence.py +343 -343
- {xenfra-0.2.9 → xenfra-0.3.0}/src/xenfra/commands/projects.py +204 -204
- {xenfra-0.2.9 → xenfra-0.3.0}/src/xenfra/commands/security_cmd.py +233 -233
- {xenfra-0.2.9 → xenfra-0.3.0}/src/xenfra/main.py +75 -74
- {xenfra-0.2.9 → xenfra-0.3.0}/src/xenfra/utils/__init__.py +3 -3
- {xenfra-0.2.9 → xenfra-0.3.0}/src/xenfra/utils/auth.py +243 -226
- {xenfra-0.2.9 → xenfra-0.3.0}/src/xenfra/utils/codebase.py +126 -126
- {xenfra-0.2.9 → xenfra-0.3.0}/src/xenfra/utils/config.py +363 -363
- {xenfra-0.2.9 → xenfra-0.3.0}/src/xenfra/utils/security.py +336 -336
- {xenfra-0.2.9 → xenfra-0.3.0}/src/xenfra/utils/validation.py +234 -234
- {xenfra-0.2.9 → xenfra-0.3.0}/src/xenfra/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: xenfra
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: A 'Zen Mode' infrastructure engine for Python developers.
|
|
5
5
|
Author: xenfra-cloud
|
|
6
6
|
Author-email: xenfra-cloud <xenfracloud@gmail.com>
|
|
@@ -31,86 +31,86 @@ Project-URL: Issues, https://github.com/xenfra-cloud/xenfra/issues
|
|
|
31
31
|
Provides-Extra: test
|
|
32
32
|
Description-Content-Type: text/markdown
|
|
33
33
|
|
|
34
|
-
# Xenfra CLI
|
|
35
|
-
|
|
36
|
-
## Xenfra CLI: Deploy Python Apps with Zen Mode
|
|
37
|
-
|
|
38
|
-
The Xenfra CLI is a powerful and intuitive command-line interface designed to streamline the deployment of Python applications to DigitalOcean. Built with a "Zen Mode" philosophy, it automates complex infrastructure tasks, allowing developers to focus on writing code.
|
|
39
|
-
|
|
40
|
-
### ✨ Key Features
|
|
41
|
-
|
|
42
|
-
- **Zero-Configuration Deployment:** Automatically detects your project's framework and dependencies.
|
|
43
|
-
- **AI-Powered Auto-Healing:** Diagnoses common deployment failures and suggests, or even applies, fixes automatically.
|
|
44
|
-
- **Real-time Monitoring:** View deployment status and stream live application logs directly from your terminal.
|
|
45
|
-
- **Integrated Project Management:** Easily list, view, and destroy your deployed projects.
|
|
46
|
-
- **Secure Authentication:** Uses OAuth2 PKCE flow for secure, token-based authentication.
|
|
47
|
-
|
|
48
|
-
### 🚀 Quickstart
|
|
49
|
-
|
|
50
|
-
#### 1. Installation
|
|
51
|
-
|
|
52
|
-
Install the Xenfra CLI using `uv` (recommended) or `pip`:
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
uv pip install xenfra-cli
|
|
56
|
-
# or
|
|
57
|
-
pip install xenfra-cli
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
#### 2. Authentication
|
|
61
|
-
|
|
62
|
-
Log in to your Xenfra account. This will open your web browser to complete the OAuth2 flow.
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
xenfra auth login
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
#### 3. Initialize Your Project
|
|
69
|
-
|
|
70
|
-
Navigate to your Python project's root directory and run `init`. The CLI will scan your codebase, detect its characteristics, and generate a `xenfra.yaml` configuration file.
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
cd your-python-project/
|
|
74
|
-
xenfra init
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
#### 4. Deploy Your Application
|
|
78
|
-
|
|
79
|
-
Once `xenfra.yaml` is configured, deploy your application. The CLI will handle provisioning a DigitalOcean Droplet, setting up Docker, and deploying your code.
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
xenfra deploy
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### 📋 Usage Examples
|
|
86
|
-
|
|
87
|
-
- **Monitor Deployment Status:**
|
|
88
|
-
```bash
|
|
89
|
-
xenfra status <deployment-id>
|
|
90
|
-
```
|
|
91
|
-
- **Stream Application Logs:**
|
|
92
|
-
```bash
|
|
93
|
-
xenfra logs <deployment-id>
|
|
94
|
-
```
|
|
95
|
-
- **List Deployed Projects:**
|
|
96
|
-
```bash
|
|
97
|
-
xenfra projects list
|
|
98
|
-
```
|
|
99
|
-
- **Diagnose a Failed Deployment (AI-Powered):**
|
|
100
|
-
```bash
|
|
101
|
-
xenfra diagnose <deployment-id>
|
|
102
|
-
# Or to diagnose from a log file:
|
|
103
|
-
xenfra diagnose --logs error.log
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
### 📚 Documentation
|
|
107
|
-
|
|
108
|
-
For more detailed information, advanced configurations, and API references, please refer to the [official Xenfra Documentation](https://docs.xenfra.tech/cli) (Link will be updated upon final deployment).
|
|
109
|
-
|
|
110
|
-
### 🤝 Contributing
|
|
111
|
-
|
|
112
|
-
We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for more details.
|
|
113
|
-
|
|
114
|
-
### 📄 License
|
|
115
|
-
|
|
116
|
-
This project is licensed under the [MIT License](LICENSE).
|
|
34
|
+
# Xenfra CLI
|
|
35
|
+
|
|
36
|
+
## Xenfra CLI: Deploy Python Apps with Zen Mode
|
|
37
|
+
|
|
38
|
+
The Xenfra CLI is a powerful and intuitive command-line interface designed to streamline the deployment of Python applications to DigitalOcean. Built with a "Zen Mode" philosophy, it automates complex infrastructure tasks, allowing developers to focus on writing code.
|
|
39
|
+
|
|
40
|
+
### ✨ Key Features
|
|
41
|
+
|
|
42
|
+
- **Zero-Configuration Deployment:** Automatically detects your project's framework and dependencies.
|
|
43
|
+
- **AI-Powered Auto-Healing:** Diagnoses common deployment failures and suggests, or even applies, fixes automatically.
|
|
44
|
+
- **Real-time Monitoring:** View deployment status and stream live application logs directly from your terminal.
|
|
45
|
+
- **Integrated Project Management:** Easily list, view, and destroy your deployed projects.
|
|
46
|
+
- **Secure Authentication:** Uses OAuth2 PKCE flow for secure, token-based authentication.
|
|
47
|
+
|
|
48
|
+
### 🚀 Quickstart
|
|
49
|
+
|
|
50
|
+
#### 1. Installation
|
|
51
|
+
|
|
52
|
+
Install the Xenfra CLI using `uv` (recommended) or `pip`:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
uv pip install xenfra-cli
|
|
56
|
+
# or
|
|
57
|
+
pip install xenfra-cli
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
#### 2. Authentication
|
|
61
|
+
|
|
62
|
+
Log in to your Xenfra account. This will open your web browser to complete the OAuth2 flow.
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
xenfra auth login
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
#### 3. Initialize Your Project
|
|
69
|
+
|
|
70
|
+
Navigate to your Python project's root directory and run `init`. The CLI will scan your codebase, detect its characteristics, and generate a `xenfra.yaml` configuration file.
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
cd your-python-project/
|
|
74
|
+
xenfra init
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
#### 4. Deploy Your Application
|
|
78
|
+
|
|
79
|
+
Once `xenfra.yaml` is configured, deploy your application. The CLI will handle provisioning a DigitalOcean Droplet, setting up Docker, and deploying your code.
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
xenfra deploy
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### 📋 Usage Examples
|
|
86
|
+
|
|
87
|
+
- **Monitor Deployment Status:**
|
|
88
|
+
```bash
|
|
89
|
+
xenfra status <deployment-id>
|
|
90
|
+
```
|
|
91
|
+
- **Stream Application Logs:**
|
|
92
|
+
```bash
|
|
93
|
+
xenfra logs <deployment-id>
|
|
94
|
+
```
|
|
95
|
+
- **List Deployed Projects:**
|
|
96
|
+
```bash
|
|
97
|
+
xenfra projects list
|
|
98
|
+
```
|
|
99
|
+
- **Diagnose a Failed Deployment (AI-Powered):**
|
|
100
|
+
```bash
|
|
101
|
+
xenfra diagnose <deployment-id>
|
|
102
|
+
# Or to diagnose from a log file:
|
|
103
|
+
xenfra diagnose --logs error.log
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### 📚 Documentation
|
|
107
|
+
|
|
108
|
+
For more detailed information, advanced configurations, and API references, please refer to the [official Xenfra Documentation](https://docs.xenfra.tech/cli) (Link will be updated upon final deployment).
|
|
109
|
+
|
|
110
|
+
### 🤝 Contributing
|
|
111
|
+
|
|
112
|
+
We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for more details.
|
|
113
|
+
|
|
114
|
+
### 📄 License
|
|
115
|
+
|
|
116
|
+
This project is licensed under the [MIT License](LICENSE).
|
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
# Xenfra CLI
|
|
2
|
-
|
|
3
|
-
## Xenfra CLI: Deploy Python Apps with Zen Mode
|
|
4
|
-
|
|
5
|
-
The Xenfra CLI is a powerful and intuitive command-line interface designed to streamline the deployment of Python applications to DigitalOcean. Built with a "Zen Mode" philosophy, it automates complex infrastructure tasks, allowing developers to focus on writing code.
|
|
6
|
-
|
|
7
|
-
### ✨ Key Features
|
|
8
|
-
|
|
9
|
-
- **Zero-Configuration Deployment:** Automatically detects your project's framework and dependencies.
|
|
10
|
-
- **AI-Powered Auto-Healing:** Diagnoses common deployment failures and suggests, or even applies, fixes automatically.
|
|
11
|
-
- **Real-time Monitoring:** View deployment status and stream live application logs directly from your terminal.
|
|
12
|
-
- **Integrated Project Management:** Easily list, view, and destroy your deployed projects.
|
|
13
|
-
- **Secure Authentication:** Uses OAuth2 PKCE flow for secure, token-based authentication.
|
|
14
|
-
|
|
15
|
-
### 🚀 Quickstart
|
|
16
|
-
|
|
17
|
-
#### 1. Installation
|
|
18
|
-
|
|
19
|
-
Install the Xenfra CLI using `uv` (recommended) or `pip`:
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
uv pip install xenfra-cli
|
|
23
|
-
# or
|
|
24
|
-
pip install xenfra-cli
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
#### 2. Authentication
|
|
28
|
-
|
|
29
|
-
Log in to your Xenfra account. This will open your web browser to complete the OAuth2 flow.
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
xenfra auth login
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
#### 3. Initialize Your Project
|
|
36
|
-
|
|
37
|
-
Navigate to your Python project's root directory and run `init`. The CLI will scan your codebase, detect its characteristics, and generate a `xenfra.yaml` configuration file.
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
cd your-python-project/
|
|
41
|
-
xenfra init
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
#### 4. Deploy Your Application
|
|
45
|
-
|
|
46
|
-
Once `xenfra.yaml` is configured, deploy your application. The CLI will handle provisioning a DigitalOcean Droplet, setting up Docker, and deploying your code.
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
xenfra deploy
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### 📋 Usage Examples
|
|
53
|
-
|
|
54
|
-
- **Monitor Deployment Status:**
|
|
55
|
-
```bash
|
|
56
|
-
xenfra status <deployment-id>
|
|
57
|
-
```
|
|
58
|
-
- **Stream Application Logs:**
|
|
59
|
-
```bash
|
|
60
|
-
xenfra logs <deployment-id>
|
|
61
|
-
```
|
|
62
|
-
- **List Deployed Projects:**
|
|
63
|
-
```bash
|
|
64
|
-
xenfra projects list
|
|
65
|
-
```
|
|
66
|
-
- **Diagnose a Failed Deployment (AI-Powered):**
|
|
67
|
-
```bash
|
|
68
|
-
xenfra diagnose <deployment-id>
|
|
69
|
-
# Or to diagnose from a log file:
|
|
70
|
-
xenfra diagnose --logs error.log
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### 📚 Documentation
|
|
74
|
-
|
|
75
|
-
For more detailed information, advanced configurations, and API references, please refer to the [official Xenfra Documentation](https://docs.xenfra.tech/cli) (Link will be updated upon final deployment).
|
|
76
|
-
|
|
77
|
-
### 🤝 Contributing
|
|
78
|
-
|
|
79
|
-
We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for more details.
|
|
80
|
-
|
|
81
|
-
### 📄 License
|
|
82
|
-
|
|
83
|
-
This project is licensed under the [MIT License](LICENSE).
|
|
1
|
+
# Xenfra CLI
|
|
2
|
+
|
|
3
|
+
## Xenfra CLI: Deploy Python Apps with Zen Mode
|
|
4
|
+
|
|
5
|
+
The Xenfra CLI is a powerful and intuitive command-line interface designed to streamline the deployment of Python applications to DigitalOcean. Built with a "Zen Mode" philosophy, it automates complex infrastructure tasks, allowing developers to focus on writing code.
|
|
6
|
+
|
|
7
|
+
### ✨ Key Features
|
|
8
|
+
|
|
9
|
+
- **Zero-Configuration Deployment:** Automatically detects your project's framework and dependencies.
|
|
10
|
+
- **AI-Powered Auto-Healing:** Diagnoses common deployment failures and suggests, or even applies, fixes automatically.
|
|
11
|
+
- **Real-time Monitoring:** View deployment status and stream live application logs directly from your terminal.
|
|
12
|
+
- **Integrated Project Management:** Easily list, view, and destroy your deployed projects.
|
|
13
|
+
- **Secure Authentication:** Uses OAuth2 PKCE flow for secure, token-based authentication.
|
|
14
|
+
|
|
15
|
+
### 🚀 Quickstart
|
|
16
|
+
|
|
17
|
+
#### 1. Installation
|
|
18
|
+
|
|
19
|
+
Install the Xenfra CLI using `uv` (recommended) or `pip`:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
uv pip install xenfra-cli
|
|
23
|
+
# or
|
|
24
|
+
pip install xenfra-cli
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
#### 2. Authentication
|
|
28
|
+
|
|
29
|
+
Log in to your Xenfra account. This will open your web browser to complete the OAuth2 flow.
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
xenfra auth login
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
#### 3. Initialize Your Project
|
|
36
|
+
|
|
37
|
+
Navigate to your Python project's root directory and run `init`. The CLI will scan your codebase, detect its characteristics, and generate a `xenfra.yaml` configuration file.
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
cd your-python-project/
|
|
41
|
+
xenfra init
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
#### 4. Deploy Your Application
|
|
45
|
+
|
|
46
|
+
Once `xenfra.yaml` is configured, deploy your application. The CLI will handle provisioning a DigitalOcean Droplet, setting up Docker, and deploying your code.
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
xenfra deploy
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 📋 Usage Examples
|
|
53
|
+
|
|
54
|
+
- **Monitor Deployment Status:**
|
|
55
|
+
```bash
|
|
56
|
+
xenfra status <deployment-id>
|
|
57
|
+
```
|
|
58
|
+
- **Stream Application Logs:**
|
|
59
|
+
```bash
|
|
60
|
+
xenfra logs <deployment-id>
|
|
61
|
+
```
|
|
62
|
+
- **List Deployed Projects:**
|
|
63
|
+
```bash
|
|
64
|
+
xenfra projects list
|
|
65
|
+
```
|
|
66
|
+
- **Diagnose a Failed Deployment (AI-Powered):**
|
|
67
|
+
```bash
|
|
68
|
+
xenfra diagnose <deployment-id>
|
|
69
|
+
# Or to diagnose from a log file:
|
|
70
|
+
xenfra diagnose --logs error.log
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 📚 Documentation
|
|
74
|
+
|
|
75
|
+
For more detailed information, advanced configurations, and API references, please refer to the [official Xenfra Documentation](https://docs.xenfra.tech/cli) (Link will be updated upon final deployment).
|
|
76
|
+
|
|
77
|
+
### 🤝 Contributing
|
|
78
|
+
|
|
79
|
+
We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for more details.
|
|
80
|
+
|
|
81
|
+
### 📄 License
|
|
82
|
+
|
|
83
|
+
This project is licensed under the [MIT License](LICENSE).
|
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
[project]
|
|
2
|
-
name = "xenfra"
|
|
3
|
-
version = "0.
|
|
4
|
-
description = "A 'Zen Mode' infrastructure engine for Python developers."
|
|
5
|
-
readme = "README.md"
|
|
6
|
-
authors = [
|
|
7
|
-
{ name = "xenfra-cloud", email = "xenfracloud@gmail.com" }
|
|
8
|
-
]
|
|
9
|
-
|
|
10
|
-
classifiers = [
|
|
11
|
-
"Programming Language :: Python :: 3",
|
|
12
|
-
"License :: OSI Approved :: MIT License",
|
|
13
|
-
"Operating System :: OS Independent",
|
|
14
|
-
"Development Status :: 3 - Alpha",
|
|
15
|
-
"Intended Audience :: Developers",
|
|
16
|
-
"Topic :: Software Development :: Build Tools",
|
|
17
|
-
"Topic :: System :: Systems Administration",
|
|
18
|
-
]
|
|
19
|
-
|
|
20
|
-
dependencies = [
|
|
21
|
-
"click>=8.1.7",
|
|
22
|
-
"rich>=14.2.0",
|
|
23
|
-
"sqlmodel>=0.0.16",
|
|
24
|
-
"python-digitalocean>=1.17.0",
|
|
25
|
-
"python-dotenv>=1.2.1",
|
|
26
|
-
"pyyaml>=6.0.1",
|
|
27
|
-
"fabric>=3.2.2",
|
|
28
|
-
"xenfra-sdk",
|
|
29
|
-
"httpx>=0.27.0",
|
|
30
|
-
"keyring>=25.7.0",
|
|
31
|
-
"keyrings.alt>=5.0.2",
|
|
32
|
-
"tenacity>=8.2.3", # For retry logic
|
|
33
|
-
]
|
|
34
|
-
requires-python = ">=3.13"
|
|
35
|
-
|
|
36
|
-
[tool.uv.sources]
|
|
37
|
-
xenfra-sdk = { workspace = true }
|
|
38
|
-
|
|
39
|
-
[project.urls]
|
|
40
|
-
Homepage = "https://github.com/xenfra-cloud/xenfra"
|
|
41
|
-
Issues = "https://github.com/xenfra-cloud/xenfra/issues"
|
|
42
|
-
|
|
43
|
-
[project.optional-dependencies]
|
|
44
|
-
test = [
|
|
45
|
-
"pytest>=8.0.0",
|
|
46
|
-
"pytest-mock>=3.12.0",
|
|
47
|
-
]
|
|
48
|
-
|
|
49
|
-
[project.scripts]
|
|
50
|
-
xenfra = "xenfra.main:main"
|
|
51
|
-
|
|
52
|
-
[build-system]
|
|
53
|
-
requires = ["uv_build>=0.9.18,<0.10.0"]
|
|
1
|
+
[project]
|
|
2
|
+
name = "xenfra"
|
|
3
|
+
version = "0.3.0"
|
|
4
|
+
description = "A 'Zen Mode' infrastructure engine for Python developers."
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
authors = [
|
|
7
|
+
{ name = "xenfra-cloud", email = "xenfracloud@gmail.com" }
|
|
8
|
+
]
|
|
9
|
+
|
|
10
|
+
classifiers = [
|
|
11
|
+
"Programming Language :: Python :: 3",
|
|
12
|
+
"License :: OSI Approved :: MIT License",
|
|
13
|
+
"Operating System :: OS Independent",
|
|
14
|
+
"Development Status :: 3 - Alpha",
|
|
15
|
+
"Intended Audience :: Developers",
|
|
16
|
+
"Topic :: Software Development :: Build Tools",
|
|
17
|
+
"Topic :: System :: Systems Administration",
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
dependencies = [
|
|
21
|
+
"click>=8.1.7",
|
|
22
|
+
"rich>=14.2.0",
|
|
23
|
+
"sqlmodel>=0.0.16",
|
|
24
|
+
"python-digitalocean>=1.17.0",
|
|
25
|
+
"python-dotenv>=1.2.1",
|
|
26
|
+
"pyyaml>=6.0.1",
|
|
27
|
+
"fabric>=3.2.2",
|
|
28
|
+
"xenfra-sdk",
|
|
29
|
+
"httpx>=0.27.0",
|
|
30
|
+
"keyring>=25.7.0",
|
|
31
|
+
"keyrings.alt>=5.0.2",
|
|
32
|
+
"tenacity>=8.2.3", # For retry logic
|
|
33
|
+
]
|
|
34
|
+
requires-python = ">=3.13"
|
|
35
|
+
|
|
36
|
+
[tool.uv.sources]
|
|
37
|
+
xenfra-sdk = { workspace = true }
|
|
38
|
+
|
|
39
|
+
[project.urls]
|
|
40
|
+
Homepage = "https://github.com/xenfra-cloud/xenfra"
|
|
41
|
+
Issues = "https://github.com/xenfra-cloud/xenfra/issues"
|
|
42
|
+
|
|
43
|
+
[project.optional-dependencies]
|
|
44
|
+
test = [
|
|
45
|
+
"pytest>=8.0.0",
|
|
46
|
+
"pytest-mock>=3.12.0",
|
|
47
|
+
]
|
|
48
|
+
|
|
49
|
+
[project.scripts]
|
|
50
|
+
xenfra = "xenfra.main:main"
|
|
51
|
+
|
|
52
|
+
[build-system]
|
|
53
|
+
requires = ["uv_build>=0.9.18,<0.10.0"]
|
|
54
54
|
build-backend = "uv_build"
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"""
|
|
2
|
-
CLI command modules for Xenfra.
|
|
3
|
-
"""
|
|
1
|
+
"""
|
|
2
|
+
CLI command modules for Xenfra.
|
|
3
|
+
"""
|