metaso-sdk 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.
Files changed (44) hide show
  1. metaso_sdk-0.1.0/CHANGELOG.md +8 -0
  2. metaso_sdk-0.1.0/CONTRIBUTING.md +150 -0
  3. metaso_sdk-0.1.0/LICENSE +21 -0
  4. metaso_sdk-0.1.0/PKG-INFO +111 -0
  5. metaso_sdk-0.1.0/README.md +74 -0
  6. metaso_sdk-0.1.0/config/coverage.ini +25 -0
  7. metaso_sdk-0.1.0/config/git-changelog.toml +9 -0
  8. metaso_sdk-0.1.0/config/mypy.ini +5 -0
  9. metaso_sdk-0.1.0/config/pytest.ini +14 -0
  10. metaso_sdk-0.1.0/config/ruff.toml +84 -0
  11. metaso_sdk-0.1.0/config/vscode/launch.json +47 -0
  12. metaso_sdk-0.1.0/config/vscode/settings.json +33 -0
  13. metaso_sdk-0.1.0/config/vscode/tasks.json +97 -0
  14. metaso_sdk-0.1.0/docs/.overrides/partials/comments.html +57 -0
  15. metaso_sdk-0.1.0/docs/changelog.md +1 -0
  16. metaso_sdk-0.1.0/docs/contributing.md +1 -0
  17. metaso_sdk-0.1.0/docs/css/material.css +4 -0
  18. metaso_sdk-0.1.0/docs/css/mkdocstrings.css +27 -0
  19. metaso_sdk-0.1.0/docs/index.md +6 -0
  20. metaso_sdk-0.1.0/docs/js/feedback.js +14 -0
  21. metaso_sdk-0.1.0/docs/license.md +10 -0
  22. metaso_sdk-0.1.0/duties.py +203 -0
  23. metaso_sdk-0.1.0/mkdocs.yml +159 -0
  24. metaso_sdk-0.1.0/pyproject.toml +115 -0
  25. metaso_sdk-0.1.0/scripts/gen_ref_nav.py +37 -0
  26. metaso_sdk-0.1.0/scripts/make +193 -0
  27. metaso_sdk-0.1.0/scripts/make.py +193 -0
  28. metaso_sdk-0.1.0/src/metaso_sdk/__init__.py +24 -0
  29. metaso_sdk-0.1.0/src/metaso_sdk/__main__.py +14 -0
  30. metaso_sdk-0.1.0/src/metaso_sdk/cli.py +58 -0
  31. metaso_sdk-0.1.0/src/metaso_sdk/client.py +11 -0
  32. metaso_sdk-0.1.0/src/metaso_sdk/debug.py +109 -0
  33. metaso_sdk-0.1.0/src/metaso_sdk/model.py +35 -0
  34. metaso_sdk-0.1.0/src/metaso_sdk/py.typed +0 -0
  35. metaso_sdk-0.1.0/src/metaso_sdk/search.py +35 -0
  36. metaso_sdk-0.1.0/src/metaso_sdk/subject.py +98 -0
  37. metaso_sdk-0.1.0/tests/__init__.py +7 -0
  38. metaso_sdk-0.1.0/tests/conftest.py +1 -0
  39. metaso_sdk-0.1.0/tests/fixtures/1/functions.pdf +0 -0
  40. metaso_sdk-0.1.0/tests/fixtures/2/phd-thesis.pdf +0 -0
  41. metaso_sdk-0.1.0/tests/fixtures/3/eurosys16-final29.pdf +0 -0
  42. metaso_sdk-0.1.0/tests/test_cli.py +51 -0
  43. metaso_sdk-0.1.0/tests/test_search.py +17 -0
  44. metaso_sdk-0.1.0/tests/test_subject.py +33 -0
@@ -0,0 +1,8 @@
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](http://keepachangelog.com/en/1.0.0/)
6
+ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
7
+
8
+ <!-- insertion marker -->
@@ -0,0 +1,150 @@
1
+ # Contributing
2
+
3
+ Contributions are welcome, and they are greatly appreciated!
4
+ Every little bit helps, and credit will always be given.
5
+
6
+ ## Environment setup
7
+
8
+ Nothing easier!
9
+
10
+ Fork and clone the repository, then:
11
+
12
+ ```bash
13
+ cd metaso-sdk
14
+ make setup
15
+ ```
16
+
17
+ > NOTE:
18
+ > If it fails for some reason,
19
+ > you'll need to install
20
+ > [uv](https://github.com/astral-sh/uv)
21
+ > manually.
22
+ >
23
+ > You can install it with:
24
+ >
25
+ > ```bash
26
+ > curl -LsSf https://astral.sh/uv/install.sh | sh
27
+ > ```
28
+ >
29
+ > Now you can try running `make setup` again,
30
+ > or simply `uv sync`.
31
+
32
+ You now have the dependencies installed.
33
+
34
+ You can run the application with `make run metaso [ARGS...]`.
35
+
36
+ Run `make help` to see all the available actions!
37
+
38
+ ## Tasks
39
+
40
+ The entry-point to run commands and tasks is the `make` Python script,
41
+ located in the `scripts` directory. Try running `make` to show the available commands and tasks.
42
+ The *commands* do not need the Python dependencies to be installed,
43
+ while the *tasks* do.
44
+ The cross-platform tasks are written in Python, thanks to [duty](https://github.com/pawamoy/duty).
45
+
46
+ If you work in VSCode, we provide
47
+ [an action to configure VSCode](https://pawamoy.github.io/copier-uv/work/#vscode-setup)
48
+ for the project.
49
+
50
+ ## Development
51
+
52
+ As usual:
53
+
54
+ 1. create a new branch: `git switch -c feature-or-bugfix-name`
55
+ 1. edit the code and/or the documentation
56
+
57
+ **Before committing:**
58
+
59
+ 1. run `make format` to auto-format the code
60
+ 1. run `make check` to check everything (fix any warning)
61
+ 1. run `make test` to run the tests (fix any issue)
62
+ 1. if you updated the documentation or the project dependencies:
63
+ 1. run `make docs`
64
+ 1. go to http://localhost:8000 and check that everything looks good
65
+ 1. follow our [commit message convention](#commit-message-convention)
66
+
67
+ If you are unsure about how to fix or ignore a warning,
68
+ just let the continuous integration fail,
69
+ and we will help you during review.
70
+
71
+ Don't bother updating the changelog, we will take care of this.
72
+
73
+ ## Commit message convention
74
+
75
+ Commit messages must follow our convention based on the
76
+ [Angular style](https://gist.github.com/stephenparish/9941e89d80e2bc58a153#format-of-the-commit-message)
77
+ or the [Karma convention](https://karma-runner.github.io/4.0/dev/git-commit-msg.html):
78
+
79
+ ```
80
+ <type>[(scope)]: Subject
81
+
82
+ [Body]
83
+ ```
84
+
85
+ **Subject and body must be valid Markdown.**
86
+ Subject must have proper casing (uppercase for first letter
87
+ if it makes sense), but no dot at the end, and no punctuation
88
+ in general.
89
+
90
+ Scope and body are optional. Type can be:
91
+
92
+ - `build`: About packaging, building wheels, etc.
93
+ - `chore`: About packaging or repo/files management.
94
+ - `ci`: About Continuous Integration.
95
+ - `deps`: Dependencies update.
96
+ - `docs`: About documentation.
97
+ - `feat`: New feature.
98
+ - `fix`: Bug fix.
99
+ - `perf`: About performance.
100
+ - `refactor`: Changes that are not features or bug fixes.
101
+ - `style`: A change in code style/format.
102
+ - `tests`: About tests.
103
+
104
+ If you write a body, please add trailers at the end
105
+ (for example issues and PR references, or co-authors),
106
+ without relying on GitHub's flavored Markdown:
107
+
108
+ ```
109
+ Body.
110
+
111
+ Issue #10: https://github.com/namespace/project/issues/10
112
+ Related to PR namespace/other-project#15: https://github.com/namespace/other-project/pull/15
113
+ ```
114
+
115
+ These "trailers" must appear at the end of the body,
116
+ without any blank lines between them. The trailer title
117
+ can contain any character except colons `:`.
118
+ We expect a full URI for each trailer, not just GitHub autolinks
119
+ (for example, full GitHub URLs for commits and issues,
120
+ not the hash or the #issue-number).
121
+
122
+ We do not enforce a line length on commit messages summary and body,
123
+ but please avoid very long summaries, and very long lines in the body,
124
+ unless they are part of code blocks that must not be wrapped.
125
+
126
+ ## Pull requests guidelines
127
+
128
+ Link to any related issue in the Pull Request message.
129
+
130
+ During the review, we recommend using fixups:
131
+
132
+ ```bash
133
+ # SHA is the SHA of the commit you want to fix
134
+ git commit --fixup=SHA
135
+ ```
136
+
137
+ Once all the changes are approved, you can squash your commits:
138
+
139
+ ```bash
140
+ git rebase -i --autosquash main
141
+ ```
142
+
143
+ And force-push:
144
+
145
+ ```bash
146
+ git push -f
147
+ ```
148
+
149
+ If this seems all too complicated, you can push or force-push each new commit,
150
+ and we will squash them ourselves if needed, before merging.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 MetaSota
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,111 @@
1
+ Metadata-Version: 2.1
2
+ Name: metaso-sdk
3
+ Version: 0.1.0
4
+ Summary: The official Python SDK for https://metaso.cn
5
+ Author-Email: Zhao Xiaohong <zhaoxiaohong@metasota.ai>
6
+ License: MIT
7
+ Classifier: Development Status :: 4 - Beta
8
+ Classifier: Intended Audience :: Developers
9
+ Classifier: Programming Language :: Python
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3 :: Only
12
+ Classifier: Programming Language :: Python :: 3.8
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Programming Language :: Python :: 3.14
19
+ Classifier: Topic :: Documentation
20
+ Classifier: Topic :: Software Development
21
+ Classifier: Topic :: Utilities
22
+ Classifier: Typing :: Typed
23
+ Project-URL: Homepage, https://meta-sota.github.io/metaso-sdk
24
+ Project-URL: Documentation, https://meta-sota.github.io/metaso-sdk
25
+ Project-URL: Changelog, https://meta-sota.github.io/metaso-sdk/changelog
26
+ Project-URL: Repository, https://github.com/meta-sota/metaso-sdk
27
+ Project-URL: Issues, https://github.com/meta-sota/metaso-sdk/issues
28
+ Project-URL: Discussions, https://github.com/meta-sota/metaso-sdk/discussions
29
+ Project-URL: Gitter, https://gitter.im/metaso-sdk/community
30
+ Project-URL: Funding, https://github.com/sponsors/meta-sota
31
+ Requires-Python: >=3.8
32
+ Requires-Dist: httpx-sse>=0.4.0
33
+ Requires-Dist: httpx>=0.27.2
34
+ Requires-Dist: pydantic>=2.10.0
35
+ Requires-Dist: streamable>=1.3.5
36
+ Description-Content-Type: text/markdown
37
+
38
+ # metaso-sdk
39
+
40
+ [![ci](https://github.com/meta-sota/metaso-sdk/workflows/ci/badge.svg)](https://github.com/meta-sota/metaso-sdk/actions?query=workflow%3Aci)
41
+ [![documentation](https://img.shields.io/badge/docs-mkdocs-708FCC.svg?style=flat)](https://meta-sota.github.io/metaso-sdk/)
42
+ [![pypi version](https://img.shields.io/pypi/v/metaso-sdk.svg)](https://pypi.org/project/metaso-sdk/)
43
+ [![gitter](https://badges.gitter.im/join%20chat.svg)](https://app.gitter.im/#/room/#metaso-sdk:gitter.im)
44
+
45
+ The official Python SDK for https://metaso.cn
46
+
47
+ ## 安装
48
+
49
+ ```bash
50
+ pip install metaso-sdk
51
+ ```
52
+
53
+ ## 配置 METASO_API_KEY
54
+
55
+ metaso-sdk 从环境变量 `METASO_API_KEY` 读取用于认证的 API 密钥,可以在 shell 里进行设置:
56
+
57
+ ```bash
58
+ export METASO_API_KEY="mk-EE2..."
59
+ ```
60
+
61
+ 或者在 Python 代码里进行设置:
62
+
63
+ ```python
64
+ import os
65
+ os.environ["METASO_API_KEY"] = "mk-EE2..."
66
+ ```
67
+
68
+ ## 搜索
69
+
70
+ ### 搜索问题
71
+ ```python
72
+ from metaso_sdk import search, Query
73
+ search(Query(question="abc"))
74
+ ```
75
+
76
+ ### 追问
77
+
78
+ ```python
79
+ search(Query(question="广播公司", sessionId='8550018047390023680'))
80
+ ```
81
+
82
+ ### 流式返回
83
+
84
+ ```python
85
+ for chunk in search(Query(question="abc"), stream=True):
86
+ print(chunk)
87
+
88
+ ...
89
+ {'type': 'heartbeat'}
90
+ {'text': '因此,“abc”可以指代字母表的前三个字母、美籍华裔、美国广播公司、一种音乐记谱法以及一种编程语言。具体含义需要根据上下文来确定。', 'type': 'append-text'}
91
+ ```
92
+
93
+ ## 专题
94
+
95
+ ### 递归上传文件夹
96
+
97
+ ```
98
+ from metaso_sdk import create_topic, upload_directory, Topic
99
+
100
+ topic = create_topic(Topic(name="functional programing"))
101
+ files = upload_directory(topic, "dir")
102
+ ```
103
+
104
+ ### 搜索特定专题
105
+
106
+ ```python
107
+ from metaso_sdk import search, Query
108
+
109
+ query = Query(question="functional")
110
+ search(query, topic=topic)
111
+ ```
@@ -0,0 +1,74 @@
1
+ # metaso-sdk
2
+
3
+ [![ci](https://github.com/meta-sota/metaso-sdk/workflows/ci/badge.svg)](https://github.com/meta-sota/metaso-sdk/actions?query=workflow%3Aci)
4
+ [![documentation](https://img.shields.io/badge/docs-mkdocs-708FCC.svg?style=flat)](https://meta-sota.github.io/metaso-sdk/)
5
+ [![pypi version](https://img.shields.io/pypi/v/metaso-sdk.svg)](https://pypi.org/project/metaso-sdk/)
6
+ [![gitter](https://badges.gitter.im/join%20chat.svg)](https://app.gitter.im/#/room/#metaso-sdk:gitter.im)
7
+
8
+ The official Python SDK for https://metaso.cn
9
+
10
+ ## 安装
11
+
12
+ ```bash
13
+ pip install metaso-sdk
14
+ ```
15
+
16
+ ## 配置 METASO_API_KEY
17
+
18
+ metaso-sdk 从环境变量 `METASO_API_KEY` 读取用于认证的 API 密钥,可以在 shell 里进行设置:
19
+
20
+ ```bash
21
+ export METASO_API_KEY="mk-EE2..."
22
+ ```
23
+
24
+ 或者在 Python 代码里进行设置:
25
+
26
+ ```python
27
+ import os
28
+ os.environ["METASO_API_KEY"] = "mk-EE2..."
29
+ ```
30
+
31
+ ## 搜索
32
+
33
+ ### 搜索问题
34
+ ```python
35
+ from metaso_sdk import search, Query
36
+ search(Query(question="abc"))
37
+ ```
38
+
39
+ ### 追问
40
+
41
+ ```python
42
+ search(Query(question="广播公司", sessionId='8550018047390023680'))
43
+ ```
44
+
45
+ ### 流式返回
46
+
47
+ ```python
48
+ for chunk in search(Query(question="abc"), stream=True):
49
+ print(chunk)
50
+
51
+ ...
52
+ {'type': 'heartbeat'}
53
+ {'text': '因此,“abc”可以指代字母表的前三个字母、美籍华裔、美国广播公司、一种音乐记谱法以及一种编程语言。具体含义需要根据上下文来确定。', 'type': 'append-text'}
54
+ ```
55
+
56
+ ## 专题
57
+
58
+ ### 递归上传文件夹
59
+
60
+ ```
61
+ from metaso_sdk import create_topic, upload_directory, Topic
62
+
63
+ topic = create_topic(Topic(name="functional programing"))
64
+ files = upload_directory(topic, "dir")
65
+ ```
66
+
67
+ ### 搜索特定专题
68
+
69
+ ```python
70
+ from metaso_sdk import search, Query
71
+
72
+ query = Query(question="functional")
73
+ search(query, topic=topic)
74
+ ```
@@ -0,0 +1,25 @@
1
+ [coverage:run]
2
+ branch = true
3
+ parallel = true
4
+ source =
5
+ src/
6
+ tests/
7
+
8
+ [coverage:paths]
9
+ equivalent =
10
+ src/
11
+ .venv/lib/*/site-packages/
12
+ .venvs/*/lib/*/site-packages/
13
+
14
+ [coverage:report]
15
+ precision = 2
16
+ omit =
17
+ src/*/__init__.py
18
+ src/*/__main__.py
19
+ tests/__init__.py
20
+ exclude_lines =
21
+ pragma: no cover
22
+ if TYPE_CHECKING
23
+
24
+ [coverage:json]
25
+ output = htmlcov/coverage.json
@@ -0,0 +1,9 @@
1
+ bump = "auto"
2
+ convention = "angular"
3
+ in-place = true
4
+ output = "CHANGELOG.md"
5
+ parse-refs = false
6
+ parse-trailers = true
7
+ sections = ["build", "deps", "feat", "fix", "refactor"]
8
+ template = "keepachangelog"
9
+ versioning = "pep440"
@@ -0,0 +1,5 @@
1
+ [mypy]
2
+ ignore_missing_imports = true
3
+ exclude = tests/fixtures/
4
+ warn_unused_ignores = true
5
+ show_error_codes = true
@@ -0,0 +1,14 @@
1
+ [pytest]
2
+ python_files =
3
+ test_*.py
4
+ addopts =
5
+ --cov
6
+ --cov-config config/coverage.ini
7
+ testpaths =
8
+ tests
9
+
10
+ # action:message_regex:warning_class:module_regex:line
11
+ filterwarnings =
12
+ error
13
+ # TODO: remove once pytest-xdist 4 is released
14
+ ignore:.*rsyncdir:DeprecationWarning:xdist
@@ -0,0 +1,84 @@
1
+ target-version = "py39"
2
+ line-length = 120
3
+
4
+ [lint]
5
+ exclude = [
6
+ "tests/fixtures/*.py",
7
+ ]
8
+ select = [
9
+ "A", "ANN", "ARG",
10
+ "B", "BLE",
11
+ "C", "C4",
12
+ "COM",
13
+ "D", "DTZ",
14
+ "E", "ERA", "EXE",
15
+ "F", "FBT",
16
+ "G",
17
+ "I", "ICN", "INP", "ISC",
18
+ "N",
19
+ "PGH", "PIE", "PL", "PLC", "PLE", "PLR", "PLW", "PT", "PYI",
20
+ "Q",
21
+ "RUF", "RSE", "RET",
22
+ "S", "SIM", "SLF",
23
+ "T", "T10", "T20", "TCH", "TID", "TRY",
24
+ "UP",
25
+ "W",
26
+ "YTT",
27
+ ]
28
+ ignore = [
29
+ "A001", # Variable is shadowing a Python builtin
30
+ "ANN101", # Missing type annotation for self
31
+ "ANN102", # Missing type annotation for cls
32
+ "ANN204", # Missing return type annotation for special method __str__
33
+ "ANN401", # Dynamically typed expressions (typing.Any) are disallowed
34
+ "ARG005", # Unused lambda argument
35
+ "C901", # Too complex
36
+ "D105", # Missing docstring in magic method
37
+ "D417", # Missing argument description in the docstring
38
+ "E501", # Line too long
39
+ "ERA001", # Commented out code
40
+ "G004", # Logging statement uses f-string
41
+ "PLR0911", # Too many return statements
42
+ "PLR0912", # Too many branches
43
+ "PLR0913", # Too many arguments to function call
44
+ "PLR0915", # Too many statements
45
+ "SLF001", # Private member accessed
46
+ "TRY003", # Avoid specifying long messages outside the exception class
47
+ ]
48
+
49
+ [lint.per-file-ignores]
50
+ "src/*/cli.py" = [
51
+ "T201", # Print statement
52
+ ]
53
+ "src/*/debug.py" = [
54
+ "T201", # Print statement
55
+ ]
56
+ "scripts/*.py" = [
57
+ "INP001", # File is part of an implicit namespace package
58
+ "T201", # Print statement
59
+ ]
60
+ "tests/*.py" = [
61
+ "ARG005", # Unused lambda argument
62
+ "FBT001", # Boolean positional arg in function definition
63
+ "PLR2004", # Magic value used in comparison
64
+ "S101", # Use of assert detected
65
+ ]
66
+
67
+ [lint.flake8-quotes]
68
+ docstring-quotes = "double"
69
+
70
+ [lint.flake8-tidy-imports]
71
+ ban-relative-imports = "all"
72
+
73
+ [lint.isort]
74
+ known-first-party = ["metaso_sdk"]
75
+
76
+ [lint.pydocstyle]
77
+ convention = "google"
78
+
79
+ [format]
80
+ exclude = [
81
+ "tests/fixtures/*.py",
82
+ ]
83
+ docstring-code-format = true
84
+ docstring-code-line-length = 80
@@ -0,0 +1,47 @@
1
+ {
2
+ "version": "0.2.0",
3
+ "configurations": [
4
+ {
5
+ "name": "python (current file)",
6
+ "type": "debugpy",
7
+ "request": "launch",
8
+ "program": "${file}",
9
+ "console": "integratedTerminal",
10
+ "justMyCode": false
11
+ },
12
+ {
13
+ "name": "docs",
14
+ "type": "debugpy",
15
+ "request": "launch",
16
+ "module": "mkdocs",
17
+ "justMyCode": false,
18
+ "args": [
19
+ "serve",
20
+ "-v"
21
+ ]
22
+ },
23
+ {
24
+ "name": "test",
25
+ "type": "debugpy",
26
+ "request": "launch",
27
+ "module": "pytest",
28
+ "justMyCode": false,
29
+ "args": [
30
+ "-c=config/pytest.ini",
31
+ "-vvv",
32
+ "--no-cov",
33
+ "--dist=no",
34
+ "tests",
35
+ "-k=${input:tests_selection}"
36
+ ]
37
+ }
38
+ ],
39
+ "inputs": [
40
+ {
41
+ "id": "tests_selection",
42
+ "type": "promptString",
43
+ "description": "Tests selection",
44
+ "default": ""
45
+ }
46
+ ]
47
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "files.watcherExclude": {
3
+ "**/.venv*/**": true,
4
+ "**/.venvs*/**": true,
5
+ "**/venv*/**": true
6
+ },
7
+ "mypy-type-checker.args": [
8
+ "--config-file=config/mypy.ini"
9
+ ],
10
+ "python.testing.unittestEnabled": false,
11
+ "python.testing.pytestEnabled": true,
12
+ "python.testing.pytestArgs": [
13
+ "--config-file=config/pytest.ini"
14
+ ],
15
+ "ruff.enable": true,
16
+ "ruff.format.args": [
17
+ "--config=config/ruff.toml"
18
+ ],
19
+ "ruff.lint.args": [
20
+ "--config=config/ruff.toml"
21
+ ],
22
+ "yaml.schemas": {
23
+ "https://squidfunk.github.io/mkdocs-material/schema.json": "mkdocs.yml"
24
+ },
25
+ "yaml.customTags": [
26
+ "!ENV scalar",
27
+ "!ENV sequence",
28
+ "!relative scalar",
29
+ "tag:yaml.org,2002:python/name:materialx.emoji.to_svg",
30
+ "tag:yaml.org,2002:python/name:materialx.emoji.twemoji",
31
+ "tag:yaml.org,2002:python/name:pymdownx.superfences.fence_code_format"
32
+ ]
33
+ }
@@ -0,0 +1,97 @@
1
+ {
2
+ "version": "2.0.0",
3
+ "tasks": [
4
+ {
5
+ "label": "changelog",
6
+ "type": "process",
7
+ "command": "scripts/make",
8
+ "args": ["changelog"]
9
+ },
10
+ {
11
+ "label": "check",
12
+ "type": "process",
13
+ "command": "scripts/make",
14
+ "args": ["check"]
15
+ },
16
+ {
17
+ "label": "check-quality",
18
+ "type": "process",
19
+ "command": "scripts/make",
20
+ "args": ["check-quality"]
21
+ },
22
+ {
23
+ "label": "check-types",
24
+ "type": "process",
25
+ "command": "scripts/make",
26
+ "args": ["check-types"]
27
+ },
28
+ {
29
+ "label": "check-docs",
30
+ "type": "process",
31
+ "command": "scripts/make",
32
+ "args": ["check-docs"]
33
+ },
34
+ {
35
+ "label": "check-api",
36
+ "type": "process",
37
+ "command": "scripts/make",
38
+ "args": ["check-api"]
39
+ },
40
+ {
41
+ "label": "clean",
42
+ "type": "process",
43
+ "command": "scripts/make",
44
+ "args": ["clean"]
45
+ },
46
+ {
47
+ "label": "docs",
48
+ "type": "process",
49
+ "command": "scripts/make",
50
+ "args": ["docs"]
51
+ },
52
+ {
53
+ "label": "docs-deploy",
54
+ "type": "process",
55
+ "command": "scripts/make",
56
+ "args": ["docs-deploy"]
57
+ },
58
+ {
59
+ "label": "format",
60
+ "type": "process",
61
+ "command": "scripts/make",
62
+ "args": ["format"]
63
+ },
64
+ {
65
+ "label": "release",
66
+ "type": "process",
67
+ "command": "scripts/make",
68
+ "args": ["release", "${input:version}"]
69
+ },
70
+ {
71
+ "label": "setup",
72
+ "type": "process",
73
+ "command": "scripts/make",
74
+ "args": ["setup"]
75
+ },
76
+ {
77
+ "label": "test",
78
+ "type": "process",
79
+ "command": "scripts/make",
80
+ "args": ["test", "coverage"],
81
+ "group": "test"
82
+ },
83
+ {
84
+ "label": "vscode",
85
+ "type": "process",
86
+ "command": "scripts/make",
87
+ "args": ["vscode"]
88
+ }
89
+ ],
90
+ "inputs": [
91
+ {
92
+ "id": "version",
93
+ "type": "promptString",
94
+ "description": "Version"
95
+ }
96
+ ]
97
+ }