taraqueue 0.0.1.dev0__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.
Files changed (40) hide show
  1. taraqueue-0.0.1.dev0/.editorconfig +21 -0
  2. taraqueue-0.0.1.dev0/.gitattributes +31 -0
  3. taraqueue-0.0.1.dev0/.github/CODEOWNERS +2 -0
  4. taraqueue-0.0.1.dev0/.github/actions/setup-uv-env/action.yml +50 -0
  5. taraqueue-0.0.1.dev0/.github/renovate.json +17 -0
  6. taraqueue-0.0.1.dev0/.github/workflows/publish.yml +58 -0
  7. taraqueue-0.0.1.dev0/.github/workflows/renovate.yaml +20 -0
  8. taraqueue-0.0.1.dev0/.github/workflows/test.yml +94 -0
  9. taraqueue-0.0.1.dev0/.gitignore +183 -0
  10. taraqueue-0.0.1.dev0/.vscode/extensions.json +9 -0
  11. taraqueue-0.0.1.dev0/.vscode/launch.json +16 -0
  12. taraqueue-0.0.1.dev0/.vscode/settings.json +18 -0
  13. taraqueue-0.0.1.dev0/CHANGES.rst +6 -0
  14. taraqueue-0.0.1.dev0/CONTRIBUTING.rst +183 -0
  15. taraqueue-0.0.1.dev0/LICENSE.rst +21 -0
  16. taraqueue-0.0.1.dev0/Makefile +49 -0
  17. taraqueue-0.0.1.dev0/PKG-INFO +67 -0
  18. taraqueue-0.0.1.dev0/README.rst +39 -0
  19. taraqueue-0.0.1.dev0/STYLE_GUIDE.rst +44 -0
  20. taraqueue-0.0.1.dev0/compose.yml +4 -0
  21. taraqueue-0.0.1.dev0/docs/changes.rst +4 -0
  22. taraqueue-0.0.1.dev0/docs/conf.py +30 -0
  23. taraqueue-0.0.1.dev0/docs/contributing.rst +1 -0
  24. taraqueue-0.0.1.dev0/docs/index.rst +36 -0
  25. taraqueue-0.0.1.dev0/docs/license.rst +11 -0
  26. taraqueue-0.0.1.dev0/docs/modules.rst +7 -0
  27. taraqueue-0.0.1.dev0/docs/style_guide.rst +1 -0
  28. taraqueue-0.0.1.dev0/docs/taraqueue.rst +29 -0
  29. taraqueue-0.0.1.dev0/pyproject.toml +145 -0
  30. taraqueue-0.0.1.dev0/taraqueue/__init__.py +0 -0
  31. taraqueue-0.0.1.dev0/taraqueue/queue.py +149 -0
  32. taraqueue-0.0.1.dev0/taraqueue/registry.py +76 -0
  33. taraqueue-0.0.1.dev0/taraqueue/testing/__init__.py +0 -0
  34. taraqueue-0.0.1.dev0/taraqueue/testing/compose.py +92 -0
  35. taraqueue-0.0.1.dev0/taraqueue/testing/queue.py +36 -0
  36. taraqueue-0.0.1.dev0/taraqueue/testing/services.py +87 -0
  37. taraqueue-0.0.1.dev0/tests/test_compose.py +40 -0
  38. taraqueue-0.0.1.dev0/tests/test_queue.py +22 -0
  39. taraqueue-0.0.1.dev0/tests/test_registry.py +102 -0
  40. taraqueue-0.0.1.dev0/uv.lock +1027 -0
@@ -0,0 +1,21 @@
1
+ # EditorConfig is awesome: http://EditorConfig.org
2
+
3
+ # top-most EditorConfig file
4
+ root = true
5
+
6
+ # Unix-style newlines with a newline ending every file
7
+ [*]
8
+ charset = utf-8
9
+ end_of_line = lf
10
+ indent_size = 4
11
+ indent_style = space
12
+ insert_final_newline = true
13
+ trim_trailing_whitespace = true
14
+
15
+ # 2 space indentation
16
+ [*.{yml,yaml,json,js,css,html}]
17
+ indent_size = 2
18
+
19
+ # Tab indentation (no size specified)
20
+ [Makefile]
21
+ indent_style = tab
@@ -0,0 +1,31 @@
1
+ # Auto detect text files and perform LF normalization.
2
+ * text=auto
3
+
4
+ # Python files
5
+ *.py text diff=python
6
+ poetry.lock linguist-generated=true
7
+
8
+ # Jupyter notebooks
9
+ *.ipynb text eol=lf
10
+
11
+ # Documents
12
+ *.csv text
13
+ *.md text diff=markdown
14
+ *.rst text
15
+ *.txt text
16
+
17
+ # Git files
18
+ *.gitattributes text
19
+ .gitignore text
20
+
21
+ # Serialisation
22
+ *.json text
23
+ *.toml text
24
+ *.xml text
25
+ *.yaml text
26
+ *.yml text
27
+
28
+ # Exclude files from exporting
29
+ .gitattributes export-ignore
30
+ .gitignore export-ignore
31
+ .gitkeep export-ignore
@@ -0,0 +1,2 @@
1
+ # These owners will be the default owners for everything in the repo.
2
+ * @taradix/core-maintainers
@@ -0,0 +1,50 @@
1
+ name: "setup-uv-env"
2
+ description: "Composite action to setup the Python and uv virtual environment."
3
+
4
+ inputs:
5
+ python-version:
6
+ required: false
7
+ description: "Python version to use"
8
+ default: "3.12"
9
+ uv-version:
10
+ required: false
11
+ description: "uv version to use (empty = use required-version or latest)"
12
+ default: ""
13
+ extras:
14
+ required: false
15
+ description: "Include optional dependencies"
16
+ default: ""
17
+ working-directory:
18
+ required: false
19
+ description: "Working directory"
20
+ default: "."
21
+
22
+ runs:
23
+ using: "composite"
24
+ steps:
25
+ - name: Set up python
26
+ uses: actions/setup-python@v6
27
+ with:
28
+ python-version: ${{ inputs.python-version }}
29
+
30
+ - name: Install uv
31
+ uses: astral-sh/setup-uv@v8.1.0
32
+ with:
33
+ version: ${{ inputs.uv-version }}
34
+ python-version: ${{ inputs.python-version }}
35
+ working-directory: ${{ inputs.working-directory }}
36
+ enable-cache: true
37
+
38
+ - name: Install dependencies
39
+ shell: bash
40
+ working-directory: ${{ inputs.working-directory }}
41
+ run: |
42
+ EXTRA_ARGS=()
43
+ if [ -n "${{ inputs.extras }}" ]; then
44
+ IFS=',' read -ra EXTRAS <<< "${{ inputs.extras }}"
45
+ for e in "${EXTRAS[@]}"; do
46
+ e="$(echo "$e" | xargs)" # trim
47
+ [ -n "$e" ] && EXTRA_ARGS+=(--extra "$e")
48
+ done
49
+ fi
50
+ uv sync "${EXTRA_ARGS[@]}"
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
+ "extends": [
4
+ "config:recommended"
5
+ ],
6
+ "git-submodules": {
7
+ "enabled": true
8
+ },
9
+ "lockFileMaintenance": {
10
+ "enabled": true
11
+ },
12
+ "automerge": true,
13
+ "automergeType": "pr",
14
+ "automergeStrategy": "squash",
15
+ "platformAutomerge": false,
16
+ "recreateWhen": "always"
17
+ }
@@ -0,0 +1,58 @@
1
+ name: Publish
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+ branches: [main]
7
+ workflow_dispatch:
8
+
9
+ permissions:
10
+ contents: write
11
+
12
+ jobs:
13
+ publish:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - name: Check out
17
+ uses: actions/checkout@v6
18
+ with:
19
+ fetch-depth: 0
20
+
21
+ - name: Set up the environment
22
+ uses: ./.github/actions/setup-uv-env
23
+
24
+ - name: Build
25
+ run: uv build
26
+
27
+ - name: Publish
28
+ uses: pypa/gh-action-pypi-publish@release/v1
29
+ with:
30
+ user: __token__
31
+ password: ${{ secrets.PYPI_TOKEN }}
32
+
33
+ docs:
34
+ runs-on: ubuntu-latest
35
+ steps:
36
+ - name: Check out
37
+ uses: actions/checkout@v6
38
+
39
+ - name: Set up the environment
40
+ uses: ./.github/actions/setup-uv-env
41
+ with:
42
+ extras: docs
43
+
44
+ - name: Export tag
45
+ id: vars
46
+ run: echo tag=${GITHUB_REF#refs/*/} >> $GITHUB_OUTPUT
47
+
48
+ - name: Run docs target
49
+ env:
50
+ RELEASE_VERSION: ${{ steps.vars.outputs.tag }}
51
+ run: |
52
+ make docs
53
+ touch build/html/.nojekyll
54
+
55
+ - name: Deploy
56
+ uses: JamesIves/github-pages-deploy-action@v4
57
+ with:
58
+ folder: build/html
@@ -0,0 +1,20 @@
1
+ name: Auto-approve Renovate PRs
2
+
3
+ on:
4
+ pull_request:
5
+ types: [opened, synchronize, reopened]
6
+
7
+ jobs:
8
+ auto-approve:
9
+ if: github.actor == 'renovate[bot]'
10
+ runs-on: ubuntu-latest
11
+ permissions:
12
+ pull-requests: write
13
+ steps:
14
+ - name: Approve Renovate PR
15
+ uses: juliangruber/approve-pull-request-action@v2
16
+ with:
17
+ github-token: ${{ secrets.CODEOWNER_TOKEN }}
18
+ number: ${{ github.event.pull_request.number }}
19
+ message: "Auto-approving Renovate PR"
20
+
@@ -0,0 +1,94 @@
1
+ name: Test
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ types: [opened, synchronize, reopened]
8
+
9
+ jobs:
10
+ check:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - name: Check out
14
+ uses: actions/checkout@v6
15
+
16
+ - name: Set up the environment
17
+ uses: ./.github/actions/setup-uv-env
18
+ with:
19
+ python-version: "3.14"
20
+ extras: check
21
+
22
+ - name: Run check target
23
+ run: make check
24
+
25
+ test:
26
+ runs-on: ubuntu-latest
27
+ strategy:
28
+ fail-fast: false
29
+ matrix:
30
+ python-version: ['3.12', '3.13', '3.14']
31
+ steps:
32
+ - name: Check out
33
+ uses: actions/checkout@v6
34
+
35
+ - name: Set up the environment
36
+ uses: ./.github/actions/setup-uv-env
37
+ with:
38
+ python-version: ${{ matrix.python-version }}
39
+ extras: test
40
+
41
+ - name: Run test target
42
+ run: make test
43
+
44
+ - name: "Upload coverage data"
45
+ uses: actions/upload-artifact@v7
46
+ with:
47
+ name: coverage-data-${{ matrix.python-version }}
48
+ path: .coverage.*
49
+ if-no-files-found: ignore
50
+ include-hidden-files: true
51
+
52
+ coverage:
53
+ runs-on: ubuntu-latest
54
+ needs: test
55
+
56
+ steps:
57
+ - name: Check out
58
+ uses: actions/checkout@v6
59
+
60
+ - name: Set up the environment
61
+ uses: ./.github/actions/setup-uv-env
62
+ with:
63
+ python-version: "3.14"
64
+ extras: test
65
+
66
+ - name: Download coverage data
67
+ uses: actions/download-artifact@v8
68
+ with:
69
+ pattern: coverage-data-*
70
+ merge-multiple: true
71
+
72
+ - name: Run coverage target
73
+ run: make coverage
74
+
75
+ - name: Upload HTML report if check failed.
76
+ uses: actions/upload-artifact@v7
77
+ with:
78
+ name: html-report
79
+ path: htmlcov
80
+ if: ${{ failure() }}
81
+
82
+ docs:
83
+ runs-on: ubuntu-latest
84
+ steps:
85
+ - name: Check out
86
+ uses: actions/checkout@v6
87
+
88
+ - name: Set up the environment
89
+ uses: ./.github/actions/setup-uv-env
90
+ with:
91
+ extras: docs
92
+
93
+ - name: Run docs target
94
+ run: make docs
@@ -0,0 +1,183 @@
1
+ # pytest-xprocess cache
2
+ .xprocess/
3
+
4
+ # Byte-compiled / optimized / DLL files
5
+ __pycache__/
6
+ *.py[cod]
7
+ *$py.class
8
+
9
+ # C extensions
10
+ *.so
11
+
12
+ # Distribution / packaging
13
+ .Python
14
+ build/
15
+ develop-eggs/
16
+ dist/
17
+ downloads/
18
+ eggs/
19
+ .eggs/
20
+ lib/
21
+ lib64/
22
+ parts/
23
+ sdist/
24
+ var/
25
+ wheels/
26
+ share/python-wheels/
27
+ *.egg-info/
28
+ .installed.cfg
29
+ *.egg
30
+ MANIFEST
31
+
32
+ # PyInstaller
33
+ # Usually these files are written by a python script from a template
34
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
35
+ *.manifest
36
+ *.spec
37
+
38
+ # Installer logs
39
+ pip-log.txt
40
+ pip-delete-this-directory.txt
41
+
42
+ # Unit test / coverage reports
43
+ htmlcov/
44
+ .tox/
45
+ .nox/
46
+ .coverage
47
+ .coverage.*
48
+ .cache
49
+ nosetests.xml
50
+ coverage.xml
51
+ *.cover
52
+ *.py,cover
53
+ .hypothesis/
54
+ .pytest_cache/
55
+ cover/
56
+
57
+ # Translations
58
+ *.mo
59
+ *.pot
60
+
61
+ # Django stuff:
62
+ *.log
63
+ local_settings.py
64
+ db.sqlite3
65
+ db.sqlite3-journal
66
+
67
+ # Flask stuff:
68
+ instance/
69
+ .webassets-cache
70
+
71
+ # Scrapy stuff:
72
+ .scrapy
73
+
74
+ # Sphinx documentation
75
+ docs/_build/
76
+
77
+ # PyBuilder
78
+ .pybuilder/
79
+ target/
80
+
81
+ # Jupyter Notebook
82
+ .ipynb_checkpoints
83
+
84
+ # IPython
85
+ profile_default/
86
+ ipython_config.py
87
+
88
+ # pyenv
89
+ # For a library or package, you might want to ignore these files since the code is
90
+ # intended to run in multiple environments; otherwise, check them in:
91
+ # .python-version
92
+
93
+ # pipenv
94
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
95
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
96
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
97
+ # install all needed dependencies.
98
+ #Pipfile.lock
99
+
100
+ # poetry
101
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
102
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
103
+ # commonly ignored for libraries.
104
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
105
+ #poetry.lock
106
+
107
+ # pdm
108
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
109
+ #pdm.lock
110
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
111
+ # in version control.
112
+ # https://pdm.fming.dev/#use-with-ide
113
+ .pdm.toml
114
+
115
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
116
+ __pypackages__/
117
+
118
+ # Celery stuff
119
+ celerybeat-schedule
120
+ celerybeat.pid
121
+
122
+ # SageMath parsed files
123
+ *.sage.py
124
+
125
+ # Environments
126
+ .env
127
+ .venv
128
+ env/
129
+ venv/
130
+ ENV/
131
+ env.bak/
132
+ venv.bak/
133
+
134
+ # Spyder project settings
135
+ .spyderproject
136
+ .spyproject
137
+
138
+ # Rope project settings
139
+ .ropeproject
140
+
141
+ # mkdocs documentation
142
+ /site
143
+
144
+ # mypy
145
+ .mypy_cache/
146
+ .dmypy.json
147
+ dmypy.json
148
+
149
+ # Pyre type checker
150
+ .pyre/
151
+
152
+ # pytype static type analyzer
153
+ .pytype/
154
+
155
+ # Cython debug symbols
156
+ cython_debug/
157
+
158
+ # PyCharm
159
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
160
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
161
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
162
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
163
+ #.idea/
164
+
165
+ # Swap
166
+ [._]*.s[a-v][a-z]
167
+ !*.svg # comment out if you don't need vector files
168
+ [._]*.sw[a-p]
169
+ [._]s[a-rt-v][a-z]
170
+ [._]ss[a-gi-z]
171
+ [._]sw[a-p]
172
+
173
+ # Session
174
+ Session.vim
175
+ Sessionx.vim
176
+
177
+ # Temporary
178
+ .netrwhist
179
+ *~
180
+ # Auto-generated tag files
181
+ tags
182
+ # Persistent undo
183
+ [._]*.un~
@@ -0,0 +1,9 @@
1
+ {
2
+ "recommendations": [
3
+ "charliermarsh.ruff",
4
+ "ms-python.black-formatter",
5
+ "lextudio.restructuredtext",
6
+ "trond-snekvik.simple-rst",
7
+ "editorconfig.editorconfig"
8
+ ]
9
+ }
@@ -0,0 +1,16 @@
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: Current File",
9
+ "type": "python",
10
+ "request": "test",
11
+ "program": "${file}",
12
+ "console": "integratedTerminal",
13
+ "justMyCode": false
14
+ }
15
+ ]
16
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "files.insertFinalNewline": true,
3
+ "python.formatting.provider": "none",
4
+ "python.testing.pytestArgs": [
5
+ "tests"
6
+ ],
7
+ "python.testing.unittestEnabled": false,
8
+ "python.testing.pytestEnabled": true,
9
+ "terminal.integrated.defaultProfile.windows": "Windows PowerShell",
10
+ "[python]": {
11
+ "editor.formatOnSave": true,
12
+ "editor.codeActionsOnSave": {
13
+ "source.fixAll": true
14
+ },
15
+ "editor.defaultFormatter": "ms-python.black-formatter"
16
+ },
17
+ "esbonio.sphinx.confDir": ""
18
+ }
@@ -0,0 +1,6 @@
1
+ Version 0.1.0
2
+ -------------
3
+
4
+ Released 2026-05-01
5
+
6
+ - Initial release.