cloudkit 0.1.0__tar.gz → 0.1.2__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.
- cloudkit-0.1.2/.devcontainer/devcontainer.json +54 -0
- cloudkit-0.1.2/.dockerignore +94 -0
- cloudkit-0.1.2/.github/dependabot.yml +12 -0
- cloudkit-0.1.2/.pre-commit-config.yaml +29 -0
- cloudkit-0.1.2/.pypirc +6 -0
- cloudkit-0.1.2/.python-version +1 -0
- cloudkit-0.1.2/.vscode/launch.json +45 -0
- cloudkit-0.1.2/.vscode/settings.json +38 -0
- cloudkit-0.1.2/.whitesource +3 -0
- cloudkit-0.1.2/CHANGELOG.md +52 -0
- cloudkit-0.1.2/Dockerfile +80 -0
- cloudkit-0.1.2/Makefile +75 -0
- {cloudkit-0.1.0 → cloudkit-0.1.2}/PKG-INFO +20 -31
- {cloudkit-0.1.0 → cloudkit-0.1.2}/README.md +19 -30
- cloudkit-0.1.2/config +4 -0
- cloudkit-0.1.2/env.template +43 -0
- cloudkit-0.1.2/examples/example_usage.py +291 -0
- {cloudkit-0.1.0 → cloudkit-0.1.2}/pyproject.toml +3 -3
- cloudkit-0.1.2/setup.py +9 -0
- cloudkit-0.1.2/tests/__init__.py +0 -0
- cloudkit-0.1.2/tests/test_cloudkit_usage.py +100 -0
- cloudkit-0.1.2/tests/test_import.py +75 -0
- cloudkit-0.1.2/tests/test_provider.py +189 -0
- cloudkit-0.1.2/uv.lock +1763 -0
- {cloudkit-0.1.0 → cloudkit-0.1.2}/.gitignore +0 -0
- {cloudkit-0.1.0 → cloudkit-0.1.2}/LICENSE +0 -0
- {cloudkit-0.1.0/cloudabstractor → cloudkit-0.1.2/src/cloudkit}/__init__.py +0 -0
- {cloudkit-0.1.0/cloudabstractor → cloudkit-0.1.2/src/cloudkit}/aws.py +0 -0
- {cloudkit-0.1.0/cloudabstractor → cloudkit-0.1.2/src/cloudkit}/azure.py +0 -0
- {cloudkit-0.1.0/cloudabstractor → cloudkit-0.1.2/src/cloudkit}/config.py +0 -0
- {cloudkit-0.1.0/cloudabstractor → cloudkit-0.1.2/src/cloudkit}/interfaces.py +0 -0
- {cloudkit-0.1.0/cloudabstractor → cloudkit-0.1.2/src/cloudkit}/provider.py +0 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
|
|
2
|
+
// README at: https://github.com/devcontainers/templates/tree/main/src/ubuntu
|
|
3
|
+
{
|
|
4
|
+
"name": "Catalyst Backend Boilerplate",
|
|
5
|
+
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
|
|
6
|
+
"image": "mcr.microsoft.com/devcontainers/base:ubuntu-22.04",
|
|
7
|
+
|
|
8
|
+
// Features to add to the dev container. More info: https://containers.dev/features.
|
|
9
|
+
"features": {
|
|
10
|
+
"ghcr.io/devcontainers/features/azure-cli:1": {},
|
|
11
|
+
"ghcr.io/azure/azure-dev/azd:0": {},
|
|
12
|
+
"ghcr.io/va-h/devcontainers-features/uv:1": {},
|
|
13
|
+
"ghcr.io/devcontainers-contrib/features/ruff:1": {}
|
|
14
|
+
// "ghcr.io/devcontainers/features/docker-outside-of-docker:1": {},
|
|
15
|
+
// "ghcr.io/devcontainers/features/nvidia-cuda:1": {}
|
|
16
|
+
},
|
|
17
|
+
|
|
18
|
+
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
|
19
|
+
// "forwardPorts": [],
|
|
20
|
+
|
|
21
|
+
// Use 'postCreateCommand' to run commands after the container is created.
|
|
22
|
+
// "postCreateCommand": "uname -a",
|
|
23
|
+
|
|
24
|
+
// Configure tool-specific properties.
|
|
25
|
+
"customizations": {
|
|
26
|
+
"vscode": {
|
|
27
|
+
"extensions": [
|
|
28
|
+
"ms-azuretools.azure-dev",
|
|
29
|
+
"ms-azuretools.vscode-bicep",
|
|
30
|
+
"ms-python.python"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"codespaces": {
|
|
34
|
+
"openFiles": [
|
|
35
|
+
"README.md"
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
|
|
40
|
+
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
|
|
41
|
+
// "remoteUser": "root"
|
|
42
|
+
|
|
43
|
+
"runArgs": ["--userns=keep-id:uid=1000,gid=1000"],
|
|
44
|
+
"containerUser": "vscode",
|
|
45
|
+
"updateRemoteUserUID": true,
|
|
46
|
+
"containerEnv": {
|
|
47
|
+
"HOME": "/home/vscode"
|
|
48
|
+
},
|
|
49
|
+
|
|
50
|
+
"hostRequirements": {
|
|
51
|
+
"memory": "8gb"
|
|
52
|
+
// "gpu": "optional"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
env/
|
|
12
|
+
venv/
|
|
13
|
+
ENV/
|
|
14
|
+
env.bak/
|
|
15
|
+
venv.bak/
|
|
16
|
+
*.egg
|
|
17
|
+
*.egg-info/
|
|
18
|
+
dist/
|
|
19
|
+
build/
|
|
20
|
+
*.whl
|
|
21
|
+
|
|
22
|
+
# PyInstaller
|
|
23
|
+
# Usually these files are written by a python script from a template
|
|
24
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
25
|
+
*.manifest
|
|
26
|
+
*.spec
|
|
27
|
+
|
|
28
|
+
# Installer logs
|
|
29
|
+
pip-log.txt
|
|
30
|
+
pip-delete-this-directory.txt
|
|
31
|
+
|
|
32
|
+
# Unit test / coverage reports
|
|
33
|
+
htmlcov/
|
|
34
|
+
.tox/
|
|
35
|
+
.nox/
|
|
36
|
+
.coverage
|
|
37
|
+
.coverage.*
|
|
38
|
+
.cache
|
|
39
|
+
nosetests.xml
|
|
40
|
+
coverage.xml
|
|
41
|
+
*.cover
|
|
42
|
+
*.py,cover
|
|
43
|
+
.hypothesis/
|
|
44
|
+
.pytest_cache/
|
|
45
|
+
|
|
46
|
+
# Translations
|
|
47
|
+
*.mo
|
|
48
|
+
*.pot
|
|
49
|
+
|
|
50
|
+
# Django stuff:
|
|
51
|
+
*.log
|
|
52
|
+
local_settings.py
|
|
53
|
+
db.sqlite3
|
|
54
|
+
|
|
55
|
+
# Flask stuff:
|
|
56
|
+
instance/
|
|
57
|
+
.webassets-cache
|
|
58
|
+
|
|
59
|
+
# Scrapy stuff:
|
|
60
|
+
.scrapy
|
|
61
|
+
|
|
62
|
+
# Sphinx documentation
|
|
63
|
+
docs/_build/
|
|
64
|
+
|
|
65
|
+
# PyBuilder
|
|
66
|
+
target/
|
|
67
|
+
|
|
68
|
+
# Jupyter Notebook
|
|
69
|
+
.ipynb_checkpoints
|
|
70
|
+
|
|
71
|
+
# IPython
|
|
72
|
+
profile_default/
|
|
73
|
+
ipython_config.py
|
|
74
|
+
|
|
75
|
+
# pyenv
|
|
76
|
+
.python-version
|
|
77
|
+
|
|
78
|
+
# celery beat schedule file
|
|
79
|
+
celerybeat-schedule
|
|
80
|
+
|
|
81
|
+
# SageMath parsed files
|
|
82
|
+
*.sage.py
|
|
83
|
+
|
|
84
|
+
# Environments
|
|
85
|
+
.env
|
|
86
|
+
.env.*
|
|
87
|
+
|
|
88
|
+
# mypy
|
|
89
|
+
.mypy_cache/
|
|
90
|
+
.dmypy.json
|
|
91
|
+
dmypy.json
|
|
92
|
+
|
|
93
|
+
# Pyre type checker
|
|
94
|
+
.pyre/
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# To get started with Dependabot version updates, you'll need to specify which
|
|
2
|
+
# package ecosystems to update and where the package manifests are located.
|
|
3
|
+
# Please see the documentation for more information:
|
|
4
|
+
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
|
5
|
+
# https://containers.dev/guide/dependabot
|
|
6
|
+
|
|
7
|
+
version: 2
|
|
8
|
+
updates:
|
|
9
|
+
- package-ecosystem: "devcontainers"
|
|
10
|
+
directory: "/"
|
|
11
|
+
schedule:
|
|
12
|
+
interval: weekly
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# See https://pre-commit.com for more information
|
|
2
|
+
# See https://pre-commit.com/hooks.html for more hooks
|
|
3
|
+
default_language_version:
|
|
4
|
+
python: python3.11
|
|
5
|
+
repos:
|
|
6
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
7
|
+
rev: v4.4.0
|
|
8
|
+
hooks:
|
|
9
|
+
- id: check-added-large-files
|
|
10
|
+
- id: check-toml
|
|
11
|
+
- id: check-yaml
|
|
12
|
+
args:
|
|
13
|
+
- --unsafe
|
|
14
|
+
- id: end-of-file-fixer
|
|
15
|
+
- id: trailing-whitespace
|
|
16
|
+
- repo: https://github.com/charliermarsh/ruff-pre-commit
|
|
17
|
+
rev: v0.2.0
|
|
18
|
+
hooks:
|
|
19
|
+
- id: ruff
|
|
20
|
+
args:
|
|
21
|
+
- --fix
|
|
22
|
+
- id: ruff-format
|
|
23
|
+
- repo: https://github.com/astral-sh/uv-pre-commit
|
|
24
|
+
rev: 0.6.2
|
|
25
|
+
hooks:
|
|
26
|
+
- id: uv-lock
|
|
27
|
+
ci:
|
|
28
|
+
autofix_commit_msg: 🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
|
|
29
|
+
autoupdate_commit_msg: ⬆ [pre-commit.ci] pre-commit autoupdate
|
cloudkit-0.1.2/.pypirc
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.11
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
// Use IntelliSense to learn about possible attributes.
|
|
3
|
+
// Hover to view descriptions of existing attributes.
|
|
4
|
+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
|
5
|
+
"version": "0.2.0",
|
|
6
|
+
"configurations": [
|
|
7
|
+
{
|
|
8
|
+
"name": "Python: Debug Current File",
|
|
9
|
+
"type": "debugpy",
|
|
10
|
+
"request": "launch",
|
|
11
|
+
"program": "${file}",
|
|
12
|
+
"console": "integratedTerminal",
|
|
13
|
+
"justMyCode": true,
|
|
14
|
+
"env": {
|
|
15
|
+
"PYTHONPATH": "${workspaceFolder}/src"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "Python: Run Examples",
|
|
20
|
+
"type": "debugpy",
|
|
21
|
+
"request": "launch",
|
|
22
|
+
"program": "${workspaceFolder}/examples/example_usage.py",
|
|
23
|
+
"console": "integratedTerminal",
|
|
24
|
+
"justMyCode": true,
|
|
25
|
+
"env": {
|
|
26
|
+
"PYTHONPATH": "${workspaceFolder}/src"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"name": "Python: Run Tests",
|
|
31
|
+
"type": "debugpy",
|
|
32
|
+
"request": "launch",
|
|
33
|
+
"module": "pytest",
|
|
34
|
+
"args": [
|
|
35
|
+
"tests/",
|
|
36
|
+
"-v"
|
|
37
|
+
],
|
|
38
|
+
"console": "integratedTerminal",
|
|
39
|
+
"justMyCode": true,
|
|
40
|
+
"env": {
|
|
41
|
+
"PYTHONPATH": "${workspaceFolder}/src"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"[python]": {
|
|
3
|
+
"editor.defaultFormatter": "charliermarsh.ruff"
|
|
4
|
+
},
|
|
5
|
+
"[markdown]": {
|
|
6
|
+
"editor.wordWrap": "on",
|
|
7
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
8
|
+
},
|
|
9
|
+
"[yaml]": {
|
|
10
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
11
|
+
},
|
|
12
|
+
"[html]": {
|
|
13
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
14
|
+
},
|
|
15
|
+
"[json]": {
|
|
16
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
17
|
+
},
|
|
18
|
+
"[jsonc]": {
|
|
19
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
20
|
+
},
|
|
21
|
+
"[javascript]": {
|
|
22
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
23
|
+
},
|
|
24
|
+
"[dockerfile]": {
|
|
25
|
+
"editor.defaultFormatter": "ms-azuretools.vscode-docker"
|
|
26
|
+
},
|
|
27
|
+
"editor.tabSize": 4,
|
|
28
|
+
"editor.insertSpaces": true,
|
|
29
|
+
"editor.renderWhitespace": "all",
|
|
30
|
+
"editor.formatOnSave": true,
|
|
31
|
+
"editor.rulers": [88, 120],
|
|
32
|
+
"files.insertFinalNewline": true,
|
|
33
|
+
"files.trimFinalNewlines": true,
|
|
34
|
+
"files.trimTrailingWhitespace": true,
|
|
35
|
+
"python.testing.pytestArgs": ["tests"],
|
|
36
|
+
"python.testing.unittestEnabled": false,
|
|
37
|
+
"python.testing.pytestEnabled": true
|
|
38
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [0.1.1] - 2026-02-04
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- Updated README with correct package name and PyPI installation instructions
|
|
12
|
+
- Updated documentation with proper import statements
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
- Fixed connection string formatting in .env template
|
|
16
|
+
|
|
17
|
+
## [0.1.0] - 2026-02-04
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
- Initial release of CloudKit
|
|
21
|
+
- Cloud abstraction layer supporting Azure and AWS
|
|
22
|
+
- Database services:
|
|
23
|
+
- Azure Cosmos DB (NoSQL and Table API)
|
|
24
|
+
- Azure Blob Storage
|
|
25
|
+
- AWS DynamoDB
|
|
26
|
+
- AWS S3
|
|
27
|
+
- AI services:
|
|
28
|
+
- Text analysis (sentiment, entity recognition, key phrase extraction)
|
|
29
|
+
- Chat completion via Azure OpenAI and AWS Bedrock
|
|
30
|
+
- Text embeddings generation
|
|
31
|
+
- Vector similarity search
|
|
32
|
+
- Search services:
|
|
33
|
+
- Azure Cognitive Search integration
|
|
34
|
+
- AWS OpenSearch integration
|
|
35
|
+
- Messaging services:
|
|
36
|
+
- Azure Service Bus support
|
|
37
|
+
- AWS SQS support
|
|
38
|
+
- Unified `CloudProvider` interface for all services
|
|
39
|
+
- Configuration via environment variables or dictionaries
|
|
40
|
+
- Async/await support for all operations
|
|
41
|
+
- Comprehensive examples and documentation
|
|
42
|
+
- Type hints throughout the codebase
|
|
43
|
+
- Testing framework with pytest
|
|
44
|
+
- Development tooling (ruff, mypy, pre-commit)
|
|
45
|
+
|
|
46
|
+
### Infrastructure
|
|
47
|
+
- Modern Python packaging with pyproject.toml
|
|
48
|
+
- Published to PyPI as `cloudkit`
|
|
49
|
+
- MIT License
|
|
50
|
+
- Python 3.11+ support
|
|
51
|
+
|
|
52
|
+
[0.1.0]: https://github.com/sleepeatai/cloudkit/releases/tag/v0.1.0
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Agentic Composer SDK - Development and Testing Container
|
|
2
|
+
FROM python:3.11-slim AS base
|
|
3
|
+
|
|
4
|
+
WORKDIR /app
|
|
5
|
+
|
|
6
|
+
# Install system dependencies required for various Python packages and development
|
|
7
|
+
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
8
|
+
build-essential \
|
|
9
|
+
curl \
|
|
10
|
+
git \
|
|
11
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
12
|
+
|
|
13
|
+
# Install UV for dependency management
|
|
14
|
+
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
15
|
+
|
|
16
|
+
# Add UV to PATH
|
|
17
|
+
ENV PATH="/root/.local/bin:$PATH" \
|
|
18
|
+
PYTHONUNBUFFERED=1 \
|
|
19
|
+
PYTHONPATH=/app
|
|
20
|
+
|
|
21
|
+
# Development stage
|
|
22
|
+
FROM base AS development
|
|
23
|
+
|
|
24
|
+
# Create virtual environment
|
|
25
|
+
RUN uv venv .venv
|
|
26
|
+
ENV PATH="/app/.venv/bin:$PATH" \
|
|
27
|
+
VIRTUAL_ENV="/app/.venv"
|
|
28
|
+
|
|
29
|
+
# Copy project configuration files
|
|
30
|
+
COPY pyproject.toml .
|
|
31
|
+
COPY uv.lock .
|
|
32
|
+
|
|
33
|
+
# Install dependencies from lockfile
|
|
34
|
+
RUN uv sync --group dev --locked
|
|
35
|
+
|
|
36
|
+
# Copy source code and other files
|
|
37
|
+
COPY src/ src/
|
|
38
|
+
COPY tests/ tests/
|
|
39
|
+
COPY examples/ examples/
|
|
40
|
+
COPY README.md .
|
|
41
|
+
COPY Makefile .
|
|
42
|
+
COPY env.template .
|
|
43
|
+
|
|
44
|
+
# Default command for development
|
|
45
|
+
CMD ["bash"]
|
|
46
|
+
|
|
47
|
+
# Testing stage
|
|
48
|
+
FROM development AS testing
|
|
49
|
+
|
|
50
|
+
# Run tests by default
|
|
51
|
+
CMD ["make", "test"]
|
|
52
|
+
|
|
53
|
+
# Examples stage - for running examples
|
|
54
|
+
FROM development AS examples
|
|
55
|
+
|
|
56
|
+
# Set working directory to examples
|
|
57
|
+
WORKDIR /app/examples
|
|
58
|
+
|
|
59
|
+
# Run examples by default
|
|
60
|
+
CMD ["python", "example_usage.py"]
|
|
61
|
+
|
|
62
|
+
# Production stage - minimal SDK installation
|
|
63
|
+
FROM base AS production
|
|
64
|
+
|
|
65
|
+
# Create virtual environment
|
|
66
|
+
RUN uv venv .venv
|
|
67
|
+
ENV PATH="/app/.venv/bin:$PATH" \
|
|
68
|
+
VIRTUAL_ENV="/app/.venv"
|
|
69
|
+
|
|
70
|
+
# Copy only what's needed for production use
|
|
71
|
+
COPY pyproject.toml .
|
|
72
|
+
COPY uv.lock .
|
|
73
|
+
COPY src/ src/
|
|
74
|
+
COPY README.md .
|
|
75
|
+
|
|
76
|
+
# Install only production dependencies from lockfile
|
|
77
|
+
RUN uv sync --locked
|
|
78
|
+
|
|
79
|
+
# Default to Python shell for SDK usage
|
|
80
|
+
CMD ["python"]
|
cloudkit-0.1.2/Makefile
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Agentic Composer SDK - Development Makefile
|
|
2
|
+
|
|
3
|
+
.PHONY: help install install-dev test lint format clean docs publish
|
|
4
|
+
|
|
5
|
+
help: ## Show this help message
|
|
6
|
+
@echo "Agentic Composer SDK - Available commands:"
|
|
7
|
+
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
|
|
8
|
+
|
|
9
|
+
lock: ## Generate or update uv.lock file
|
|
10
|
+
uv lock
|
|
11
|
+
|
|
12
|
+
install: ## Install the SDK in development mode
|
|
13
|
+
uv venv .venv
|
|
14
|
+
source .venv/bin/activate && uv sync --locked
|
|
15
|
+
|
|
16
|
+
install-dev: ## Install SDK with development dependencies
|
|
17
|
+
uv sync --group dev --locked
|
|
18
|
+
|
|
19
|
+
test: ## Run tests with coverage
|
|
20
|
+
uv run pytest tests/ -v --cov=src --cov-report=html --cov-report=term
|
|
21
|
+
|
|
22
|
+
test-fast: ## Run tests without coverage (faster)
|
|
23
|
+
uv run pytest tests/ -v
|
|
24
|
+
|
|
25
|
+
lint: ## Run linting with ruff
|
|
26
|
+
uv run ruff check src/ tests/ examples/
|
|
27
|
+
|
|
28
|
+
lint-fix: ## Run linting with auto-fix
|
|
29
|
+
uv run ruff check --fix src/ tests/ examples/
|
|
30
|
+
|
|
31
|
+
format: ## Format code with ruff
|
|
32
|
+
uv run ruff format src/ tests/ examples/
|
|
33
|
+
|
|
34
|
+
format-check: ## Check if code is properly formatted
|
|
35
|
+
uv run ruff format --check src/ tests/ examples/
|
|
36
|
+
|
|
37
|
+
type-check: ## Run type checking with mypy
|
|
38
|
+
uv run mypy src/
|
|
39
|
+
|
|
40
|
+
clean: ## Clean up cache and build artifacts
|
|
41
|
+
find . -type d -name "__pycache__" -exec rm -rf {} +
|
|
42
|
+
find . -type d -name "*.egg-info" -exec rm -rf {} +
|
|
43
|
+
find . -type d -name ".pytest_cache" -exec rm -rf {} +
|
|
44
|
+
find . -type d -name ".mypy_cache" -exec rm -rf {} +
|
|
45
|
+
find . -type d -name ".ruff_cache" -exec rm -rf {} +
|
|
46
|
+
rm -rf build/ dist/ htmlcov/
|
|
47
|
+
|
|
48
|
+
examples: ## Run the example usage script
|
|
49
|
+
cd examples && uv run python example_usage.py
|
|
50
|
+
|
|
51
|
+
docs: ## Generate documentation (placeholder)
|
|
52
|
+
@echo "Documentation generation not yet implemented"
|
|
53
|
+
|
|
54
|
+
pre-commit: ## Run pre-commit checks (lint, format, type-check, test)
|
|
55
|
+
make format-check
|
|
56
|
+
make lint
|
|
57
|
+
make type-check
|
|
58
|
+
make test-fast
|
|
59
|
+
|
|
60
|
+
build: ## Build the package
|
|
61
|
+
uv build
|
|
62
|
+
|
|
63
|
+
publish-test: ## Publish to test PyPI
|
|
64
|
+
uv publish --repository-url https://test.pypi.org/legacy/
|
|
65
|
+
|
|
66
|
+
publish: ## Publish to PyPI
|
|
67
|
+
uv publish
|
|
68
|
+
|
|
69
|
+
# Development workflow
|
|
70
|
+
dev-setup: install-dev ## Complete development setup
|
|
71
|
+
@echo "Development environment ready!"
|
|
72
|
+
@echo "Run 'make help' to see available commands"
|
|
73
|
+
|
|
74
|
+
check-all: pre-commit ## Run all quality checks
|
|
75
|
+
@echo "All quality checks passed!"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cloudkit
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: Python cloud abstraction SDK for databases and AI services on Azure and AWS
|
|
5
5
|
Author-email: sleepeatai <sleepeatai@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -33,7 +33,11 @@ Requires-Dist: pydantic>=2.10.6
|
|
|
33
33
|
Requires-Dist: pyyaml>=6.0.2
|
|
34
34
|
Description-Content-Type: text/markdown
|
|
35
35
|
|
|
36
|
-
#
|
|
36
|
+
# CloudKit
|
|
37
|
+
|
|
38
|
+
[](https://badge.fury.io/py/cloudkit)
|
|
39
|
+
[](https://www.python.org/downloads/)
|
|
40
|
+
[](https://opensource.org/licenses/MIT)
|
|
37
41
|
|
|
38
42
|
A Python cloud abstraction SDK that provides a unified interface for databases and AI services across Azure and AWS. This SDK allows you to build cloud-agnostic microservices that can easily switch between cloud providers without changing your application code.
|
|
39
43
|
|
|
@@ -55,36 +59,25 @@ A Python cloud abstraction SDK that provides a unified interface for databases a
|
|
|
55
59
|
|
|
56
60
|
## Installation
|
|
57
61
|
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
python3 -m pip install keyring artifacts-keyring
|
|
61
|
-
```
|
|
62
|
+
Install from PyPI:
|
|
62
63
|
|
|
63
|
-
2. Configure Azure Artifacts authentication:
|
|
64
64
|
```bash
|
|
65
|
-
|
|
65
|
+
pip install cloudkit
|
|
66
66
|
```
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
python3 -m pip install cloudabstractor
|
|
71
|
-
```
|
|
68
|
+
Or install from source:
|
|
72
69
|
|
|
73
70
|
```bash
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
cd agentic-composer-sdk
|
|
71
|
+
git clone https://github.com/sleepeatai/cloudkit.git
|
|
72
|
+
cd cloudkit
|
|
77
73
|
pip install -e .
|
|
78
|
-
|
|
79
|
-
# Or install from PyPI (once published)
|
|
80
|
-
pip install agentic-composer-sdk
|
|
81
74
|
```
|
|
82
75
|
|
|
83
76
|
## Quick Start
|
|
84
77
|
|
|
85
78
|
```python
|
|
86
79
|
import asyncio
|
|
87
|
-
from
|
|
80
|
+
from cloudkit import CloudProvider
|
|
88
81
|
|
|
89
82
|
async def main():
|
|
90
83
|
# Initialize for Azure
|
|
@@ -153,7 +146,7 @@ export CLOUD_SDK_AWS__AWS_REGION=us-east-1
|
|
|
153
146
|
### Configuration Dictionary
|
|
154
147
|
|
|
155
148
|
```python
|
|
156
|
-
from
|
|
149
|
+
from cloudkit import CloudProvider
|
|
157
150
|
|
|
158
151
|
# Azure configuration
|
|
159
152
|
azure_config = {
|
|
@@ -286,7 +279,7 @@ Here's how to integrate the SDK into a microservice:
|
|
|
286
279
|
|
|
287
280
|
```python
|
|
288
281
|
from fastapi import FastAPI
|
|
289
|
-
from
|
|
282
|
+
from cloudkit import CloudProvider
|
|
290
283
|
|
|
291
284
|
app = FastAPI()
|
|
292
285
|
|
|
@@ -363,9 +356,6 @@ chat_response = await bedrock_chat.chat_completion(
|
|
|
363
356
|
## Testing
|
|
364
357
|
|
|
365
358
|
```bash
|
|
366
|
-
# Install test dependencies
|
|
367
|
-
pip install -e ".[test]"
|
|
368
|
-
|
|
369
359
|
# Run tests
|
|
370
360
|
pytest tests/
|
|
371
361
|
|
|
@@ -376,18 +366,17 @@ pytest --cov=src tests/
|
|
|
376
366
|
## Development
|
|
377
367
|
|
|
378
368
|
```bash
|
|
379
|
-
# Install development dependencies
|
|
380
|
-
pip install -e ".[dev]"
|
|
381
|
-
|
|
382
369
|
# Format code
|
|
383
|
-
|
|
384
|
-
|
|
370
|
+
ruff format src/ tests/
|
|
371
|
+
|
|
372
|
+
# Lint code
|
|
373
|
+
ruff check src/ tests/
|
|
385
374
|
|
|
386
375
|
# Type checking
|
|
387
376
|
mypy src/
|
|
388
377
|
|
|
389
|
-
#
|
|
390
|
-
|
|
378
|
+
# Run tests
|
|
379
|
+
pytest tests/
|
|
391
380
|
```
|
|
392
381
|
|
|
393
382
|
## Contributing
|