micoo 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.
@@ -0,0 +1,70 @@
1
+ ---
2
+ name: Bug report
3
+ about: Report a bug in `micoo`
4
+ title: 'Bug: '
5
+ labels: bug
6
+ assignees: 'hasansezertasan'
7
+ ---
8
+ # Bug Report
9
+
10
+ ## Bug Description
11
+
12
+ <!--
13
+ This issue tracker is a tool to address bugs in micoo itself.
14
+ Please use GitHub Discussions about your own code or scenarios.
15
+
16
+ Replace this comment with a clear outline of what the bug is.
17
+ -->
18
+
19
+ ## How to Reproduce
20
+
21
+ <!--
22
+ Describe how to replicate the bug.
23
+
24
+ Include a minimal reproducible example that demonstrates the bug. Here is an example of a minimal reproducible example:
25
+
26
+ ```shell
27
+ micoo dump python
28
+ ```
29
+
30
+ Include the full traceback if there was an exception. For example:
31
+
32
+ ```shell
33
+ ╭────────────────────────── Traceback (most recent call last) ──────────────────────────╮
34
+ │ /Users/hasansezertasan/Developer/projects/micoo/src/micoo/main.py:187 in dump │
35
+ │ │
36
+ │ 184 │ Dump a specific cookbook to a file: │
37
+ │ 185 │ │ micoo dump python > .mise.toml │
38
+ │ 186 │ """ │
39
+ │ > 187 │ 0/0 │
40
+ │ 188 │ cookbook_path = repository_path / (name + file_extension) │
41
+ │ 189 │ if not cookbook_path.exists(): │
42
+ │ 190 │ │ typer.echo(f"Cookbook '{name}' not found.") │
43
+ │ │
44
+ │ ╭──── locals ─────╮ │
45
+ │ │ name = 'python' │ │
46
+ │ ╰─────────────────╯ │
47
+ ╰───────────────────────────────────────────────────────────────────────────────────────╯
48
+ ZeroDivisionError: division by zero
49
+ ```
50
+ -->
51
+
52
+ ## Expected Behavior
53
+
54
+ <!--
55
+ Describe the expected behavior that should have happened but didn't.
56
+ -->
57
+
58
+ ## Environment
59
+
60
+ <!--
61
+ Simply run `micoo info` and paste the output here.
62
+
63
+ ```shell
64
+ Application Version: 0.1.dev0+d20250726
65
+ Python Version: 3.8.20 (CPython)
66
+ Platform: Darwin
67
+ Repository Path: /Users/hasansezertasan/Library/Caches/micoo/mise-cookbooks
68
+ Repository URL: https://github.com/hasansezertasan/mise-cookbooks/tree/81747c2e983fa1278005c8cb8b0e311a7726923a
69
+ ```
70
+ -->
@@ -0,0 +1,5 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: Questions on Discussions
4
+ url: https://github.com/hasansezertasan/micoo/discussions/
5
+ about: Ask questions about your own code or scenarios on the Discussions tab.
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest a new feature for `micoo`
4
+ title: 'Enhancement: '
5
+ labels: enhancement
6
+ assignees: 'hasansezertasan'
7
+ ---
8
+ # Feature Request
9
+
10
+ ## Feature Description
11
+
12
+ <!--
13
+ Replace this comment with a description of what the feature should do.
14
+ Include details such as links to relevant specs or previous discussions.
15
+ -->
16
+
17
+ ## Use Case
18
+
19
+ <!--
20
+ Replace this comment with an example of the problem which this feature
21
+ would resolve.
22
+ -->
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: CD
3
+ on:
4
+ push:
5
+ tags:
6
+ - "*" # Will trigger for every tag, alternative: 'v*'
7
+ jobs:
8
+ build:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - name: Checkout repository
12
+ uses: actions/checkout@v4
13
+ - name: Set up Python
14
+ uses: actions/setup-python@v5
15
+ with:
16
+ python-version-file: '.python-version'
17
+ - name: Setup uv
18
+ id: setup-uv
19
+ uses: astral-sh/setup-uv@v5
20
+ with:
21
+ enable-cache: true
22
+ - name: Restore cache
23
+ if: steps.setup-uv.outputs.cache-hit == 'true'
24
+ run: echo "Cache was restored"
25
+ - name: Build the Package
26
+ run: uv build --no-sources --quiet
27
+ - name: Upload Artifacts
28
+ uses: actions/upload-artifact@v4.6.2
29
+ with:
30
+ path: ./dist
31
+ release:
32
+ needs: build
33
+ runs-on: ubuntu-latest
34
+ permissions:
35
+ contents: write
36
+ steps:
37
+ - name: Download Artifacts
38
+ uses: actions/download-artifact@v4.3.0
39
+ - name: Release
40
+ uses: softprops/action-gh-release@v2.3.2
41
+ if: github.ref_type == 'tag'
42
+ with:
43
+ files: artifacts/
44
+ publish-pypi:
45
+ needs: release
46
+ runs-on: ubuntu-latest
47
+ # Specifying a GitHub environment is optional, but strongly encouraged
48
+ permissions:
49
+ # IMPORTANT: this permission is mandatory for Trusted Publishing
50
+ id-token: write
51
+ environment:
52
+ name: publish
53
+ url: https://pypi.org/project/micoo/${{ github.ref_name }}
54
+ steps:
55
+ - name: Download Artifacts
56
+ uses: actions/download-artifact@v4.3.0
57
+ - name: Publish to PyPI
58
+ uses: pypa/gh-action-pypi-publish@v1.12.4
59
+ with:
60
+ packages-dir: artifact/
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: CI
3
+ on:
4
+ workflow_dispatch: # Allows manual triggering of the workflow
5
+ pull_request:
6
+ branches: ["main"] # Triggers on pull requests targeting the main branch
7
+ concurrency:
8
+ group: ${{ github.workflow }}-${{ github.ref }} # Grouping by workflow name and reference
9
+ cancel-in-progress: true # Cancel any in-progress runs for the same group
10
+ jobs:
11
+ ci:
12
+ runs-on: ubuntu-latest
13
+ timeout-minutes: 10
14
+ steps:
15
+ - name: Checkout repository
16
+ uses: actions/checkout@v4
17
+ - name: Set up Python
18
+ uses: actions/setup-python@v5
19
+ with:
20
+ python-version-file: '.python-version'
21
+ - name: Setup uv
22
+ id: setup-uv
23
+ uses: astral-sh/setup-uv@v5
24
+ with:
25
+ enable-cache: true
26
+ - name: Restore cache
27
+ if: steps.setup-uv.outputs.cache-hit == 'true'
28
+ run: echo "Cache was restored"
29
+ - name: Style
30
+ run: uv run --locked tox run
micoo-0.1.0/.gitignore ADDED
@@ -0,0 +1,268 @@
1
+ ### Generated by gibo (https://github.com/simonwhitaker/gibo)
2
+ ### https://raw.github.com/github/gitignore/297239c101dcfdfae7e75757ed17ed993df0b4eb/Global/macOS.gitignore
3
+
4
+ # General
5
+ .DS_Store
6
+ .AppleDouble
7
+ .LSOverride
8
+
9
+ # Icon must end with two \r
10
+ Icon
11
+
12
+
13
+ # Thumbnails
14
+ ._*
15
+
16
+ # Files that might appear in the root of a volume
17
+ .DocumentRevisions-V100
18
+ .fseventsd
19
+ .Spotlight-V100
20
+ .TemporaryItems
21
+ .Trashes
22
+ .VolumeIcon.icns
23
+ .com.apple.timemachine.donotpresent
24
+
25
+ # Directories potentially created on remote AFP share
26
+ .AppleDB
27
+ .AppleDesktop
28
+ Network Trash Folder
29
+ Temporary Items
30
+ .apdisk
31
+ ### Generated by gibo (https://github.com/simonwhitaker/gibo)
32
+ ### https://raw.github.com/github/gitignore/297239c101dcfdfae7e75757ed17ed993df0b4eb/Global/Windows.gitignore
33
+
34
+ # Windows thumbnail cache files
35
+ Thumbs.db
36
+ Thumbs.db:encryptable
37
+ ehthumbs.db
38
+ ehthumbs_vista.db
39
+
40
+ # Dump file
41
+ *.stackdump
42
+
43
+ # Folder config file
44
+ [Dd]esktop.ini
45
+
46
+ # Recycle Bin used on file shares
47
+ $RECYCLE.BIN/
48
+
49
+ # Windows Installer files
50
+ *.cab
51
+ *.msi
52
+ *.msix
53
+ *.msm
54
+ *.msp
55
+
56
+ # Windows shortcuts
57
+ *.lnk
58
+ ### Generated by gibo (https://github.com/simonwhitaker/gibo)
59
+ ### https://raw.github.com/github/gitignore/297239c101dcfdfae7e75757ed17ed993df0b4eb/Global/Linux.gitignore
60
+
61
+ *~
62
+
63
+ # temporary files which can be created if a process still has a handle open of a deleted file
64
+ .fuse_hidden*
65
+
66
+ # KDE directory preferences
67
+ .directory
68
+
69
+ # Linux trash folder which might appear on any partition or disk
70
+ .Trash-*
71
+
72
+ # .nfs files are created when an open file is removed but is still being accessed
73
+ .nfs*
74
+ ### Generated by gibo (https://github.com/simonwhitaker/gibo)
75
+ ### https://raw.github.com/github/gitignore/297239c101dcfdfae7e75757ed17ed993df0b4eb/Global/VisualStudioCode.gitignore
76
+
77
+ .vscode/*
78
+ !.vscode/settings.json
79
+ !.vscode/tasks.json
80
+ !.vscode/launch.json
81
+ !.vscode/extensions.json
82
+ !.vscode/*.code-snippets
83
+
84
+ # Local History for Visual Studio Code
85
+ .history/
86
+
87
+ # Built Visual Studio Code Extensions
88
+ *.vsix
89
+ ### Generated by gibo (https://github.com/simonwhitaker/gibo)
90
+ ### https://raw.github.com/github/gitignore/297239c101dcfdfae7e75757ed17ed993df0b4eb/Python.gitignore
91
+
92
+ # Byte-compiled / optimized / DLL files
93
+ __pycache__/
94
+ *.py[cod]
95
+ *$py.class
96
+
97
+ # C extensions
98
+ *.so
99
+
100
+ # Distribution / packaging
101
+ .Python
102
+ build/
103
+ develop-eggs/
104
+ dist/
105
+ downloads/
106
+ eggs/
107
+ .eggs/
108
+ lib/
109
+ lib64/
110
+ parts/
111
+ sdist/
112
+ var/
113
+ wheels/
114
+ share/python-wheels/
115
+ *.egg-info/
116
+ .installed.cfg
117
+ *.egg
118
+ MANIFEST
119
+
120
+ # PyInstaller
121
+ # Usually these files are written by a python script from a template
122
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
123
+ *.manifest
124
+ *.spec
125
+
126
+ # Installer logs
127
+ pip-log.txt
128
+ pip-delete-this-directory.txt
129
+
130
+ # Unit test / coverage reports
131
+ htmlcov/
132
+ .tox/
133
+ .nox/
134
+ .coverage
135
+ .coverage.*
136
+ .cache
137
+ nosetests.xml
138
+ coverage.xml
139
+ *.cover
140
+ *.py,cover
141
+ .hypothesis/
142
+ .pytest_cache/
143
+ cover/
144
+
145
+ # Translations
146
+ *.mo
147
+ *.pot
148
+
149
+ # Django stuff:
150
+ *.log
151
+ local_settings.py
152
+ db.sqlite3
153
+ db.sqlite3-journal
154
+
155
+ # Flask stuff:
156
+ instance/
157
+ .webassets-cache
158
+
159
+ # Scrapy stuff:
160
+ .scrapy
161
+
162
+ # Sphinx documentation
163
+ docs/_build/
164
+
165
+ # PyBuilder
166
+ .pybuilder/
167
+ target/
168
+
169
+ # Jupyter Notebook
170
+ .ipynb_checkpoints
171
+
172
+ # IPython
173
+ profile_default/
174
+ ipython_config.py
175
+
176
+ # pyenv
177
+ # For a library or package, you might want to ignore these files since the code is
178
+ # intended to run in multiple environments; otherwise, check them in:
179
+ # .python-version
180
+
181
+ # pipenv
182
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
183
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
184
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
185
+ # install all needed dependencies.
186
+ #Pipfile.lock
187
+
188
+ # UV
189
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
190
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
191
+ # commonly ignored for libraries.
192
+ #uv.lock
193
+
194
+ # poetry
195
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
196
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
197
+ # commonly ignored for libraries.
198
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
199
+ #poetry.lock
200
+
201
+ # pdm
202
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
203
+ #pdm.lock
204
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
205
+ # in version control.
206
+ # https://pdm.fming.dev/latest/usage/project/#working-with-version-control
207
+ .pdm.toml
208
+ .pdm-python
209
+ .pdm-build/
210
+
211
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
212
+ __pypackages__/
213
+
214
+ # Celery stuff
215
+ celerybeat-schedule
216
+ celerybeat.pid
217
+
218
+ # SageMath parsed files
219
+ *.sage.py
220
+
221
+ # Environments
222
+ .env
223
+ .venv
224
+ env/
225
+ venv/
226
+ ENV/
227
+ env.bak/
228
+ venv.bak/
229
+
230
+ # Spyder project settings
231
+ .spyderproject
232
+ .spyproject
233
+
234
+ # Rope project settings
235
+ .ropeproject
236
+
237
+ # mkdocs documentation
238
+ /site
239
+
240
+ # mypy
241
+ .mypy_cache/
242
+ .dmypy.json
243
+ dmypy.json
244
+
245
+ # Pyre type checker
246
+ .pyre/
247
+
248
+ # pytype static type analyzer
249
+ .pytype/
250
+
251
+ # Cython debug symbols
252
+ cython_debug/
253
+
254
+ # PyCharm
255
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
256
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
257
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
258
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
259
+ #.idea/
260
+
261
+ # Ruff stuff:
262
+ .ruff_cache/
263
+
264
+ # PyPI configuration file
265
+ .pypirc
266
+
267
+ ### Generated by the author
268
+ src/**/_version.py
@@ -0,0 +1,55 @@
1
+ ---
2
+ # See https://pre-commit.com for more information
3
+ # See https://pre-commit.com/hooks.html for more hooks
4
+ exclude: |
5
+ (?x)^(
6
+
7
+ # Ignore `.devcontainer/devcontainer.json`
8
+ |\.devcontainer/devcontainer\.json$
9
+
10
+ # Ignore `.vscode/launch.json`
11
+ |\.vscode/launch\.json$
12
+
13
+ )$
14
+ repos:
15
+ # https://github.com/pre-commit/pre-commit-hooks#pre-commit-hooks
16
+ - repo: https://github.com/pre-commit/pre-commit-hooks
17
+ rev: v5.0.0
18
+ hooks:
19
+ - id: check-added-large-files
20
+ name: Check added large files
21
+ - id: check-toml
22
+ name: Check TOML
23
+ - id: check-yaml
24
+ name: Check YAML
25
+ args:
26
+ - --unsafe
27
+ - id: check-json
28
+ name: Check JSON
29
+ - id: end-of-file-fixer
30
+ name: End of file fixer
31
+ - id: trailing-whitespace
32
+ name: Trailing whitespace
33
+ - id: debug-statements
34
+ name: Debug Statements
35
+ - repo: https://github.com/astral-sh/uv-pre-commit
36
+ rev: 0.8.3
37
+ hooks:
38
+ - id: uv-lock
39
+ name: Lockfile Up To Date
40
+ - repo: https://github.com/astral-sh/ruff-pre-commit
41
+ rev: v0.12.5
42
+ hooks:
43
+ - id: ruff
44
+ name: Ruff Linter
45
+ - id: ruff-format
46
+ name: Ruff Formatter
47
+ - repo: https://github.com/commitizen-tools/commitizen
48
+ rev: v4.8.3
49
+ hooks:
50
+ - id: commitizen
51
+ name: Commitizen
52
+ stages: [commit-msg]
53
+ - id: commitizen-branch
54
+ name: Commitizen Branch
55
+ stages: [pre-push]
@@ -0,0 +1 @@
1
+ 3.8
@@ -0,0 +1,15 @@
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 Debugger: Module",
9
+ "type": "debugpy",
10
+ "request": "launch",
11
+ "justMyCode": true,
12
+ "module": "micoo",
13
+ }
14
+ ]
15
+ }
@@ -0,0 +1,5 @@
1
+ ## 0.1.0 (2025-07-27)
2
+
3
+ ### Feat
4
+
5
+ - initial commit
@@ -0,0 +1,115 @@
1
+ # Code of Conduct - micoo
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to make participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, sex characteristics, gender identity and expression,
9
+ level of experience, education, socio-economic status, nationality, personal
10
+ appearance, race, religion, or sexual identity and orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behaviour that contributes to a positive environment for our
15
+ community include:
16
+
17
+ * Demonstrating empathy and kindness toward other people
18
+ * Being respectful of differing opinions, viewpoints, and experiences
19
+ * Giving and gracefully accepting constructive feedback
20
+ * Accepting responsibility and apologising to those affected by our mistakes,
21
+ and learning from the experience
22
+ * Focusing on what is best not just for us as individuals, but for the
23
+ overall community
24
+
25
+ Examples of unacceptable behaviour include:
26
+
27
+ * The use of sexualised language or imagery, and sexual attention or advances
28
+ * Trolling, insulting or derogatory comments, and personal or political attacks
29
+ * Public or private harassment
30
+ * Publishing others' private information, such as a physical or email
31
+ address, without their explicit permission
32
+ * Other conduct which could reasonably be considered inappropriate in a
33
+ professional setting
34
+
35
+ ## Our Responsibilities
36
+
37
+ Project maintainers are responsible for clarifying and enforcing our standards of
38
+ acceptable behaviour and will take appropriate and fair corrective action in
39
+ response to any behaviour that they deem inappropriate,
40
+ threatening, offensive, or harmful.
41
+
42
+ Project maintainers have the right and responsibility to remove, edit, or reject
43
+ comments, commits, code, wiki edits, issues, and other contributions that are
44
+ not aligned to this Code of Conduct, and will
45
+ communicate reasons for moderation decisions when appropriate.
46
+
47
+ ## Scope
48
+
49
+ This Code of Conduct applies within all community spaces, and also applies when
50
+ an individual is officially representing the community in public spaces.
51
+ Examples of representing our community include using an official e-mail address,
52
+ posting via an official social media account, or acting as an appointed
53
+ representative at an online or offline event.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behaviour may be
58
+ reported to the community leaders responsible for enforcement at <hasansezertasan@gmail.com>.
59
+ All complaints will be reviewed and investigated promptly and fairly.
60
+
61
+ All community leaders are obligated to respect the privacy and security of the
62
+ reporter of any incident.
63
+
64
+ ## Enforcement Guidelines
65
+
66
+ Community leaders will follow these Community Impact Guidelines in determining
67
+ the consequences for any action they deem in violation of this Code of Conduct:
68
+
69
+ ### 1. Correction
70
+
71
+ **Community Impact**: Use of inappropriate language or other behaviour deemed
72
+ unprofessional or unwelcome in the community.
73
+
74
+ **Consequence**: A private, written warning from community leaders, providing
75
+ clarity around the nature of the violation and an explanation of why the
76
+ behaviour was inappropriate. A public apology may be requested.
77
+
78
+ ### 2. Warning
79
+
80
+ **Community Impact**: A violation through a single incident or series
81
+ of actions.
82
+
83
+ **Consequence**: A warning with consequences for continued behaviour. No
84
+ interaction with the people involved, including unsolicited interaction with
85
+ those enforcing the Code of Conduct, for a specified period of time. This
86
+ includes avoiding interactions in community spaces as well as external channels
87
+ like social media. Violating these terms may lead to a temporary or
88
+ permanent ban.
89
+
90
+ ### 3. Temporary Ban
91
+
92
+ **Community Impact**: A serious violation of community standards, including
93
+ sustained inappropriate behaviour.
94
+
95
+ **Consequence**: A temporary ban from any sort of interaction or public
96
+ communication with the community for a specified period of time. No public or
97
+ private interaction with the people involved, including unsolicited interaction
98
+ with those enforcing the Code of Conduct, is allowed during this period.
99
+ Violating these terms may lead to a permanent ban.
100
+
101
+ ### 4. Permanent Ban
102
+
103
+ **Community Impact**: Demonstrating a pattern of violation of community
104
+ standards, including sustained inappropriate behaviour, harassment of an
105
+ individual, or aggression toward or disparagement of classes of individuals.
106
+
107
+ **Consequence**: A permanent ban from any sort of public interaction within
108
+ the community.
109
+
110
+ ## Attribution
111
+
112
+ This Code of Conduct is adapted from the [Contributor Covenant](https://contributor-covenant.org/), version
113
+ [1.4](https://www.contributor-covenant.org/version/1/4/code-of-conduct/code_of_conduct.md) and
114
+ [2.0](https://www.contributor-covenant.org/version/2/0/code_of_conduct/code_of_conduct.md),
115
+ and was generated by [contributing.md](https://contributing.md/generator).