weco 0.1.1__tar.gz → 0.1.3__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.
- weco-0.1.3/.github/workflows/lint.yml +57 -0
- weco-0.1.3/.github/workflows/release.yml +95 -0
- weco-0.1.3/.gitignore +168 -0
- {weco-0.1.1/weco.egg-info → weco-0.1.3}/PKG-INFO +30 -18
- {weco-0.1.1 → weco-0.1.3}/README.md +14 -11
- weco-0.1.3/assets/weco.svg +91 -0
- weco-0.1.3/examples/cookbook.ipynb +255 -0
- weco-0.1.3/pyproject.toml +80 -0
- weco-0.1.3/tests/asynchronous.py +28 -0
- weco-0.1.3/tests/batching.py +28 -0
- weco-0.1.3/tests/synchronous.py +21 -0
- weco-0.1.3/weco/__init__.py +4 -0
- weco-0.1.3/weco/client.py +297 -0
- weco-0.1.3/weco/functional.py +120 -0
- {weco-0.1.1 → weco-0.1.3/weco.egg-info}/PKG-INFO +30 -18
- weco-0.1.3/weco.egg-info/SOURCES.txt +19 -0
- weco-0.1.3/weco.egg-info/requires.txt +10 -0
- weco-0.1.1/pyproject.toml +0 -12
- weco-0.1.1/setup.py +0 -39
- weco-0.1.1/weco/__init__.py +0 -8
- weco-0.1.1/weco/client.py +0 -121
- weco-0.1.1/weco/functional.py +0 -46
- weco-0.1.1/weco.egg-info/SOURCES.txt +0 -12
- weco-0.1.1/weco.egg-info/requires.txt +0 -1
- {weco-0.1.1 → weco-0.1.3}/LICENSE +0 -0
- {weco-0.1.1 → weco-0.1.3}/setup.cfg +0 -0
- {weco-0.1.1 → weco-0.1.3}/weco.egg-info/dependency_links.txt +0 -0
- {weco-0.1.1 → weco-0.1.3}/weco.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
name: Lint and Format Code
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
- dev
|
|
8
|
+
|
|
9
|
+
pull_request:
|
|
10
|
+
branches:
|
|
11
|
+
- main
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
build:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- name: Checkout code
|
|
19
|
+
uses: actions/checkout@v3
|
|
20
|
+
with:
|
|
21
|
+
ref: ${{ github.head_ref }}
|
|
22
|
+
|
|
23
|
+
- name: Set up Python
|
|
24
|
+
uses: actions/setup-python@v3
|
|
25
|
+
with:
|
|
26
|
+
python-version: "3.10"
|
|
27
|
+
|
|
28
|
+
- name: Install dependencies
|
|
29
|
+
run: |
|
|
30
|
+
python -m pip install --upgrade pip
|
|
31
|
+
pip install flake8 flake8-pyproject black isort
|
|
32
|
+
|
|
33
|
+
- name: Lint with flake8
|
|
34
|
+
run: |
|
|
35
|
+
# uses the flake8 configuration in pyproject.toml
|
|
36
|
+
# stop the build if there are Python syntax errors or undefined names
|
|
37
|
+
flake8 .
|
|
38
|
+
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
|
39
|
+
flake8 . --exit-zero
|
|
40
|
+
|
|
41
|
+
- name: Run black
|
|
42
|
+
run: black .
|
|
43
|
+
|
|
44
|
+
- name: Run isort
|
|
45
|
+
run: isort .
|
|
46
|
+
|
|
47
|
+
- name: Commit changes
|
|
48
|
+
run: |
|
|
49
|
+
git config --local user.email "action@github.com"
|
|
50
|
+
git config --local user.name "GitHub Action"
|
|
51
|
+
git add -A
|
|
52
|
+
if git diff --exit-code --staged; then
|
|
53
|
+
echo "No changes to commit"
|
|
54
|
+
else
|
|
55
|
+
git commit -m "[PROJ] Format code with Black"
|
|
56
|
+
git push https://${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
|
|
57
|
+
fi
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
name: Publish Python 🐍 distribution 📦 to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
|
|
8
|
+
release:
|
|
9
|
+
types: [published]
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
build:
|
|
13
|
+
name: Build distribution 📦
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
- name: Set up Python
|
|
19
|
+
uses: actions/setup-python@v5
|
|
20
|
+
with:
|
|
21
|
+
python-version: "3.10"
|
|
22
|
+
- name: Install build dependencies
|
|
23
|
+
run: >-
|
|
24
|
+
python3 -m pip install build --user
|
|
25
|
+
- name: Build a source distribution and a wheel
|
|
26
|
+
run: python3 -m build
|
|
27
|
+
- name: Store the distribution packages
|
|
28
|
+
uses: actions/upload-artifact@v3
|
|
29
|
+
with:
|
|
30
|
+
name: python-package-distributions
|
|
31
|
+
path: dist/
|
|
32
|
+
|
|
33
|
+
publish-to-pypi:
|
|
34
|
+
name: >-
|
|
35
|
+
Publish Python 🐍 distribution 📦 to PyPI
|
|
36
|
+
needs:
|
|
37
|
+
- build
|
|
38
|
+
runs-on: ubuntu-latest
|
|
39
|
+
environment:
|
|
40
|
+
name: release
|
|
41
|
+
url: https://pypi.org/p/weco
|
|
42
|
+
permissions:
|
|
43
|
+
id-token: write
|
|
44
|
+
|
|
45
|
+
steps:
|
|
46
|
+
- name: Download all the dists
|
|
47
|
+
uses: actions/download-artifact@v3
|
|
48
|
+
with:
|
|
49
|
+
name: python-package-distributions
|
|
50
|
+
path: dist/
|
|
51
|
+
- name: Publish distribution 📦 to PyPI
|
|
52
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
53
|
+
|
|
54
|
+
github-release:
|
|
55
|
+
name: >-
|
|
56
|
+
Sign Python 🐍 distribution 📦 and create GitHub Release
|
|
57
|
+
needs:
|
|
58
|
+
- publish-to-pypi
|
|
59
|
+
runs-on: ubuntu-latest
|
|
60
|
+
|
|
61
|
+
permissions:
|
|
62
|
+
contents: write
|
|
63
|
+
id-token: write
|
|
64
|
+
|
|
65
|
+
steps:
|
|
66
|
+
- name: Download all the dists
|
|
67
|
+
uses: actions/download-artifact@v3
|
|
68
|
+
with:
|
|
69
|
+
name: python-package-distributions
|
|
70
|
+
path: dist/
|
|
71
|
+
- name: Sign the dists with Sigstore
|
|
72
|
+
uses: sigstore/gh-action-sigstore-python@v2.1.1
|
|
73
|
+
with:
|
|
74
|
+
inputs: >-
|
|
75
|
+
./dist/*.tar.gz
|
|
76
|
+
./dist/*.whl
|
|
77
|
+
- name: Create GitHub Release
|
|
78
|
+
env:
|
|
79
|
+
GITHUB_TOKEN: ${{ github.token }}
|
|
80
|
+
run: >-
|
|
81
|
+
LATEST_TAG=$(git describe --tags --abbrev=0)
|
|
82
|
+
gh release create
|
|
83
|
+
"$LATEST_TAG"
|
|
84
|
+
--repo '${{ github.repository }}'
|
|
85
|
+
--notes ""
|
|
86
|
+
- name: Upload artifact signatures to GitHub Release
|
|
87
|
+
env:
|
|
88
|
+
GITHUB_TOKEN: ${{ github.token }}
|
|
89
|
+
# Upload to GitHub Release using the `gh` CLI.
|
|
90
|
+
# `dist/` contains the built packages, and the
|
|
91
|
+
# sigstore-produced signatures and certificates.
|
|
92
|
+
run: >-
|
|
93
|
+
gh release upload
|
|
94
|
+
"$LATEST_TAG" dist/**
|
|
95
|
+
--repo '${{ github.repository }}'
|
weco-0.1.3/.gitignore
ADDED
|
@@ -0,0 +1,168 @@
|
|
|
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
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
share/python-wheels/
|
|
24
|
+
*.egg-info/
|
|
25
|
+
.installed.cfg
|
|
26
|
+
*.egg
|
|
27
|
+
MANIFEST
|
|
28
|
+
|
|
29
|
+
# PyInstaller
|
|
30
|
+
# Usually these files are written by a python script from a template
|
|
31
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
32
|
+
*.manifest
|
|
33
|
+
*.spec
|
|
34
|
+
|
|
35
|
+
# Installer logs
|
|
36
|
+
pip-log.txt
|
|
37
|
+
pip-delete-this-directory.txt
|
|
38
|
+
|
|
39
|
+
# Unit test / coverage reports
|
|
40
|
+
htmlcov/
|
|
41
|
+
.tox/
|
|
42
|
+
.nox/
|
|
43
|
+
.coverage
|
|
44
|
+
.coverage.*
|
|
45
|
+
.cache
|
|
46
|
+
nosetests.xml
|
|
47
|
+
coverage.xml
|
|
48
|
+
*.cover
|
|
49
|
+
*.py,cover
|
|
50
|
+
.hypothesis/
|
|
51
|
+
.pytest_cache/
|
|
52
|
+
cover/
|
|
53
|
+
|
|
54
|
+
# Translations
|
|
55
|
+
*.mo
|
|
56
|
+
*.pot
|
|
57
|
+
|
|
58
|
+
# Django stuff:
|
|
59
|
+
*.log
|
|
60
|
+
local_settings.py
|
|
61
|
+
db.sqlite3
|
|
62
|
+
db.sqlite3-journal
|
|
63
|
+
|
|
64
|
+
# Flask stuff:
|
|
65
|
+
instance/
|
|
66
|
+
.webassets-cache
|
|
67
|
+
|
|
68
|
+
# Scrapy stuff:
|
|
69
|
+
.scrapy
|
|
70
|
+
|
|
71
|
+
# Sphinx documentation
|
|
72
|
+
docs/_build/
|
|
73
|
+
|
|
74
|
+
# PyBuilder
|
|
75
|
+
.pybuilder/
|
|
76
|
+
target/
|
|
77
|
+
|
|
78
|
+
# Jupyter Notebook
|
|
79
|
+
.ipynb_checkpoints
|
|
80
|
+
|
|
81
|
+
# IPython
|
|
82
|
+
profile_default/
|
|
83
|
+
ipython_config.py
|
|
84
|
+
|
|
85
|
+
# pyenv
|
|
86
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
87
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
88
|
+
# .python-version
|
|
89
|
+
|
|
90
|
+
# pipenv
|
|
91
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
92
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
93
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
94
|
+
# install all needed dependencies.
|
|
95
|
+
#Pipfile.lock
|
|
96
|
+
|
|
97
|
+
# poetry
|
|
98
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
99
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
100
|
+
# commonly ignored for libraries.
|
|
101
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
102
|
+
#poetry.lock
|
|
103
|
+
|
|
104
|
+
# pdm
|
|
105
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
106
|
+
#pdm.lock
|
|
107
|
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
|
108
|
+
# in version control.
|
|
109
|
+
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
|
|
110
|
+
.pdm.toml
|
|
111
|
+
.pdm-python
|
|
112
|
+
.pdm-build/
|
|
113
|
+
|
|
114
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
115
|
+
__pypackages__/
|
|
116
|
+
|
|
117
|
+
# Celery stuff
|
|
118
|
+
celerybeat-schedule
|
|
119
|
+
celerybeat.pid
|
|
120
|
+
|
|
121
|
+
# SageMath parsed files
|
|
122
|
+
*.sage.py
|
|
123
|
+
|
|
124
|
+
# Environments
|
|
125
|
+
.env
|
|
126
|
+
.venv
|
|
127
|
+
env/
|
|
128
|
+
venv/
|
|
129
|
+
ENV/
|
|
130
|
+
env.bak/
|
|
131
|
+
venv.bak/
|
|
132
|
+
|
|
133
|
+
# Spyder project settings
|
|
134
|
+
.spyderproject
|
|
135
|
+
.spyproject
|
|
136
|
+
|
|
137
|
+
# Rope project settings
|
|
138
|
+
.ropeproject
|
|
139
|
+
|
|
140
|
+
# mkdocs documentation
|
|
141
|
+
/site
|
|
142
|
+
|
|
143
|
+
# mypy
|
|
144
|
+
.mypy_cache/
|
|
145
|
+
.dmypy.json
|
|
146
|
+
dmypy.json
|
|
147
|
+
|
|
148
|
+
# Pyre type checker
|
|
149
|
+
.pyre/
|
|
150
|
+
|
|
151
|
+
# pytype static type analyzer
|
|
152
|
+
.pytype/
|
|
153
|
+
|
|
154
|
+
# Cython debug symbols
|
|
155
|
+
cython_debug/
|
|
156
|
+
|
|
157
|
+
# PyCharm
|
|
158
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
159
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
160
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
161
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
162
|
+
#.idea/
|
|
163
|
+
|
|
164
|
+
# MacOS Files
|
|
165
|
+
.DS_Store
|
|
166
|
+
|
|
167
|
+
# Case Studies
|
|
168
|
+
case_studies/
|
|
@@ -1,25 +1,33 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: weco
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.3
|
|
4
4
|
Summary: A client facing API for interacting with the WeCo AI function builder service.
|
|
5
|
-
|
|
6
|
-
Author: ['WeCo AI Team']
|
|
7
|
-
Author-email: dhruv@weco.ai
|
|
5
|
+
Author-email: WeCo AI Team <dhruv@weco.ai>
|
|
8
6
|
License: MIT
|
|
9
|
-
|
|
7
|
+
Project-URL: Homepage, https://github.com/WecoAI/weco-python
|
|
8
|
+
Keywords: AI,LLM,machine learning,data science,function builder
|
|
10
9
|
Classifier: Programming Language :: Python :: 3
|
|
11
10
|
Classifier: Operating System :: OS Independent
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
12
|
Requires-Python: >=3.8
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE
|
|
15
|
-
|
|
16
|
-
[
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
15
|
+
Requires-Dist: asyncio
|
|
16
|
+
Requires-Dist: httpx[http2]
|
|
17
|
+
Provides-Extra: dev
|
|
18
|
+
Requires-Dist: build; extra == "dev"
|
|
19
|
+
Requires-Dist: setuptools_scm; extra == "dev"
|
|
20
|
+
Requires-Dist: flake8; extra == "dev"
|
|
21
|
+
Requires-Dist: flake8-pyproject; extra == "dev"
|
|
22
|
+
Requires-Dist: black; extra == "dev"
|
|
23
|
+
Requires-Dist: isort; extra == "dev"
|
|
24
|
+
|
|
25
|
+
<div align="center" style="display: flex; align-items: center; justify-content: center;">
|
|
26
|
+
<img src="assets/weco.svg" alt="WeCo AI" style="height: 50px; margin-right: 10px;">
|
|
27
|
+
<a href="https://git.io/typing-svg"><img src="https://readme-typing-svg.demolab.com?font=Georgia&size=32&duration=4000&pause=400&color=FD4578&vCenter=true&multiline=false&width=200&height=50&lines=WeCo+Client" alt="Typing SVG" /></a>
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
# $f$(👷♂️)
|
|
23
31
|
|
|
24
32
|
A client facing API for interacting with the [WeCo AI](https://www.weco.ai/) function builder [service](https://weco-app.vercel.app/function)!
|
|
25
33
|
|
|
@@ -35,18 +43,20 @@ pip install weco
|
|
|
35
43
|
|
|
36
44
|
## Features
|
|
37
45
|
|
|
38
|
-
- The **build** function enables quick and easy prototyping of new functions via LLMs through just natural language. We encourage users to do this through our [web console](https://weco-app.vercel.app/function) for maximum control and ease of use, however, you can also do this through our API as shown in [here](examples/).
|
|
46
|
+
- The **build** function enables quick and easy prototyping of new functions via LLMs through just natural language. We encourage users to do this through our [web console](https://weco-app.vercel.app/function) for maximum control and ease of use, however, you can also do this through our API as shown in [here](examples/cookbook.ipynb).
|
|
39
47
|
- The **query** function allows you to test and use the newly created function in your own code.
|
|
48
|
+
- We offer asynchronous versions of the above clients.
|
|
49
|
+
- We provide a **batch_query** functions that allows users to batch functions for various inputs as well as multiple inputs for the same function in a query. This is helpful to make a large number of queries more efficiently.
|
|
40
50
|
|
|
41
51
|
We provide both services in two ways:
|
|
42
|
-
- `weco.WecoAI` client to be used when you want to maintain the same client service across a portion of code. This is better for dense service usage.
|
|
43
|
-
- `weco.query` and `weco.build` to be used when you only require sparse usage.
|
|
52
|
+
- `weco.WecoAI` client to be used when you want to maintain the same client service across a portion of code. This is better for dense service usage.
|
|
53
|
+
- `weco.query` and `weco.build` to be used when you only require sparse usage.
|
|
44
54
|
|
|
45
55
|
## Usage
|
|
46
56
|
|
|
47
57
|
When using the WeCo API, you will need to set the API key:
|
|
48
58
|
You can find/setup your API key [here](https://weco-app.vercel.app/account) by navigating to the API key tab. Once you have your API key, you may pass it to the `weco` client using the `api_key` argument input or set it as an environment variable such as:
|
|
49
|
-
```
|
|
59
|
+
```bash
|
|
50
60
|
export WECO_API_KEY=<YOUR_WECO_API_KEY>
|
|
51
61
|
```
|
|
52
62
|
|
|
@@ -65,4 +75,6 @@ response = query(
|
|
|
65
75
|
)
|
|
66
76
|
```
|
|
67
77
|
|
|
68
|
-
|
|
78
|
+
For more examples and an advanced user guide, check out our function builder [cookbook](examples/cookbook.ipynb).
|
|
79
|
+
|
|
80
|
+
## Happy building $f$(👷♂️)!
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center" style="display: flex; align-items: center; justify-content: center;">
|
|
2
|
+
<img src="assets/weco.svg" alt="WeCo AI" style="height: 50px; margin-right: 10px;">
|
|
3
|
+
<a href="https://git.io/typing-svg"><img src="https://readme-typing-svg.demolab.com?font=Georgia&size=32&duration=4000&pause=400&color=FD4578&vCenter=true&multiline=false&width=200&height=50&lines=WeCo+Client" alt="Typing SVG" /></a>
|
|
4
|
+
</div>
|
|
2
5
|
|
|
3
|
-
|
|
4
|
-

|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
# WeCo $f$(👷♂️)
|
|
6
|
+
# $f$(👷♂️)
|
|
8
7
|
|
|
9
8
|
A client facing API for interacting with the [WeCo AI](https://www.weco.ai/) function builder [service](https://weco-app.vercel.app/function)!
|
|
10
9
|
|
|
@@ -20,18 +19,20 @@ pip install weco
|
|
|
20
19
|
|
|
21
20
|
## Features
|
|
22
21
|
|
|
23
|
-
- The **build** function enables quick and easy prototyping of new functions via LLMs through just natural language. We encourage users to do this through our [web console](https://weco-app.vercel.app/function) for maximum control and ease of use, however, you can also do this through our API as shown in [here](examples/).
|
|
22
|
+
- The **build** function enables quick and easy prototyping of new functions via LLMs through just natural language. We encourage users to do this through our [web console](https://weco-app.vercel.app/function) for maximum control and ease of use, however, you can also do this through our API as shown in [here](examples/cookbook.ipynb).
|
|
24
23
|
- The **query** function allows you to test and use the newly created function in your own code.
|
|
24
|
+
- We offer asynchronous versions of the above clients.
|
|
25
|
+
- We provide a **batch_query** functions that allows users to batch functions for various inputs as well as multiple inputs for the same function in a query. This is helpful to make a large number of queries more efficiently.
|
|
25
26
|
|
|
26
27
|
We provide both services in two ways:
|
|
27
|
-
- `weco.WecoAI` client to be used when you want to maintain the same client service across a portion of code. This is better for dense service usage.
|
|
28
|
-
- `weco.query` and `weco.build` to be used when you only require sparse usage.
|
|
28
|
+
- `weco.WecoAI` client to be used when you want to maintain the same client service across a portion of code. This is better for dense service usage.
|
|
29
|
+
- `weco.query` and `weco.build` to be used when you only require sparse usage.
|
|
29
30
|
|
|
30
31
|
## Usage
|
|
31
32
|
|
|
32
33
|
When using the WeCo API, you will need to set the API key:
|
|
33
34
|
You can find/setup your API key [here](https://weco-app.vercel.app/account) by navigating to the API key tab. Once you have your API key, you may pass it to the `weco` client using the `api_key` argument input or set it as an environment variable such as:
|
|
34
|
-
```
|
|
35
|
+
```bash
|
|
35
36
|
export WECO_API_KEY=<YOUR_WECO_API_KEY>
|
|
36
37
|
```
|
|
37
38
|
|
|
@@ -50,4 +51,6 @@ response = query(
|
|
|
50
51
|
)
|
|
51
52
|
```
|
|
52
53
|
|
|
53
|
-
|
|
54
|
+
For more examples and an advanced user guide, check out our function builder [cookbook](examples/cookbook.ipynb).
|
|
55
|
+
|
|
56
|
+
## Happy building $f$(👷♂️)!
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
<svg viewBox="457.34072022160666 394.2 109.83379501385042 113.4" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" data-name="Слой 1" id="_Слой_1" style="max-height: 500px" width="109.83379501385042" height="113.4">
|
|
2
|
+
<defs>
|
|
3
|
+
<style>
|
|
4
|
+
.cls-1 {
|
|
5
|
+
fill: url(#_Безымянный_градиент_8);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.cls-1, .cls-2, .cls-3, .cls-4, .cls-5, .cls-6, .cls-7, .cls-8, .cls-9 {
|
|
9
|
+
stroke-width: 0px;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.cls-1, .cls-2, .cls-3, .cls-5, .cls-6, .cls-7, .cls-8 {
|
|
13
|
+
fill-rule: evenodd;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.cls-2 {
|
|
17
|
+
fill: url(#_Безымянный_градиент_13);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.cls-3 {
|
|
21
|
+
fill: url(#_Безымянный_градиент_10);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.cls-4 {
|
|
25
|
+
fill: url(#_Безымянный_градиент_182);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.cls-5 {
|
|
29
|
+
fill: url(#_Безымянный_градиент_182-2);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.cls-6 {
|
|
33
|
+
fill: url(#_Безымянный_градиент_10-4);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.cls-7 {
|
|
37
|
+
fill: url(#_Безымянный_градиент_10-3);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.cls-8 {
|
|
41
|
+
fill: url(#_Безымянный_градиент_10-2);
|
|
42
|
+
}
|
|
43
|
+
</style>
|
|
44
|
+
<linearGradient gradientUnits="userSpaceOnUse" gradientTransform="translate(1103.6 -1390.4) rotate(45)" y2="1722.82" x2="894.85" y1="1722.82" x1="835.17" data-name="Безымянный градиент 10" id="_Безымянный_градиент_10">
|
|
45
|
+
<stop stop-color="#f99d24" offset="0"/>
|
|
46
|
+
<stop stop-color="#ff3c82" offset=".47"/>
|
|
47
|
+
<stop stop-color="#c649b6" offset=".69"/>
|
|
48
|
+
<stop stop-color="#9854e1" offset=".9"/>
|
|
49
|
+
<stop stop-color="#8759f2" offset="1"/>
|
|
50
|
+
</linearGradient>
|
|
51
|
+
<linearGradient gradientUnits="userSpaceOnUse" gradientTransform="translate(1103.6 -1390.4) rotate(45)" y2="1736.49" x2="882.93" y1="1736.49" x1="845.28" data-name="Безымянный градиент 13" id="_Безымянный_градиент_13">
|
|
52
|
+
<stop stop-color="#ff3c82" offset="0"/>
|
|
53
|
+
<stop stop-color="#fd3c83" offset="0"/>
|
|
54
|
+
<stop stop-color="#be4bbe" offset=".48"/>
|
|
55
|
+
<stop stop-color="#9655e3" offset=".82"/>
|
|
56
|
+
<stop stop-color="#8759f2" offset="1"/>
|
|
57
|
+
</linearGradient>
|
|
58
|
+
<linearGradient xlink:href="#_Безымянный_градиент_10" y2="1733.25" x2="930.17" y1="1733.25" x1="858.98" data-name="Безымянный градиент 10" id="_Безымянный_градиент_10-2"/>
|
|
59
|
+
<linearGradient xlink:href="#_Безымянный_градиент_10" y2="1699.44" x2="913.44" y1="1742.08" x1="913.44" data-name="Безымянный градиент 10" id="_Безымянный_градиент_10-3"/>
|
|
60
|
+
<linearGradient gradientUnits="userSpaceOnUse" gradientTransform="translate(1103.6 -1390.4) rotate(45)" y2="1664.98" x2="888.71" y1="1736.43" x1="888.71" data-name="Безымянный градиент 8" id="_Безымянный_градиент_8">
|
|
61
|
+
<stop stop-color="#8759f2" offset="0"/>
|
|
62
|
+
<stop stop-color="#9854e1" offset=".1"/>
|
|
63
|
+
<stop stop-color="#c649b6" offset=".31"/>
|
|
64
|
+
<stop stop-color="#ff3c82" offset=".53"/>
|
|
65
|
+
<stop stop-color="#f99d24" offset="1"/>
|
|
66
|
+
</linearGradient>
|
|
67
|
+
<linearGradient xlink:href="#_Безымянный_градиент_10" y2="1674.57" x2="886.51" y1="1702.9" x1="858.19" data-name="Безымянный градиент 10" id="_Безымянный_градиент_10-4"/>
|
|
68
|
+
<linearGradient gradientUnits="userSpaceOnUse" gradientTransform="translate(2223.51 -436.72) rotate(90)" y2="1711.15" x2="875.01" y1="1711.15" x1="875.01" data-name="Безымянный градиент 182" id="_Безымянный_градиент_182">
|
|
69
|
+
<stop stop-color="#4629bb" offset="0"/>
|
|
70
|
+
<stop stop-color="#cf77c1" offset="1"/>
|
|
71
|
+
</linearGradient>
|
|
72
|
+
<linearGradient xlink:href="#_Безымянный_градиент_182" gradientTransform="translate(1103.6 -1390.4) rotate(45)" y2="1717.03" x2="857.73" y1="1717.03" x1="856.1" data-name="Безымянный градиент 182" id="_Безымянный_градиент_182-2"/>
|
|
73
|
+
</defs>
|
|
74
|
+
<path d="M537.85,440.86c-3.78,3.48-8.57,6.37-14.29,8.63-1.58-1.99-3.35-3.96-5.29-5.91-1.94-1.94-3.91-3.71-5.9-5.29h0s0,0,0,0c-4.82-3.83-9.71-6.53-14.62-8.06h0c-.46-.15-.91-.28-1.37-.4-.65-.18-1.3-.29-1.95-.35-.02,0-.03,0-.05,0-14.05-2.04-26.22,6.4-28.64,19.29-1.28-4.77-1.33-9.86-.01-14.77,4.07-15.2,19.75-24.25,34.95-20.18,1.88.5,3.76,1.13,5.63,1.86,5.01,1.97,9.92,4.75,14.69,8.33,3.07,2.3,6.08,4.92,9.01,7.85,2.93,2.93,5.55,5.94,7.85,9.01Z" class="cls-3"/>
|
|
75
|
+
<path d="M491.71,470.14c-1.99-.3-3.93-.7-5.81-1.2-4.84-1.3-9.26-3.84-12.78-7.37-3.6-3.6-6.1-8.04-7.38-12.81,2.41-12.89,14.59-21.33,28.64-19.29-5.68-.52-11.11,3.11-12.63,8.81-1.1,4.11.09,8.54,3.1,11.56,1.47,1.47,3.32,2.53,5.34,3.08.46.12.92.24,1.38.34-.71,5.92-.67,11.56.13,16.88Z" class="cls-2"/>
|
|
76
|
+
<path d="M536.42,492.25c-2.58,1.74-5.46,3.05-8.56,3.88-9.82,2.63-20.38-.2-27.58-7.4-3.53-3.53-6.07-7.94-7.37-12.78-.5-1.88-.9-3.82-1.2-5.8,0,0,0,0,0,0-.8-5.33-.84-10.96-.13-16.88.46-3.81,1.22-7.73,2.29-11.73,1.07-4,2.37-7.77,3.88-11.3,4.91,1.53,9.8,4.23,14.62,8.06h0c-.93,2.36-1.76,4.87-2.47,7.53-.71,2.66-1.26,5.25-1.63,7.76,0,0,0,0,0,0-.9,6.09-.8,11.67.32,16.69h0c.1.47.22.93.34,1.38,1.31,12.42,15.82,24.79,27.48,20.59Z" class="cls-8"/>
|
|
77
|
+
<path d="M536.42,492.25c-11.67,4.2-26.17-8.17-27.48-20.59.54,2.03,1.61,3.87,3.08,5.34,3.02,3.02,7.45,4.21,11.56,3.1,3.08-.82,5.66-2.8,7.25-5.57,1.6-2.76,2.02-5.98,1.2-9.07-.12-.45-.26-.91-.4-1.37,5.48-2.35,10.35-5.2,14.56-8.56.74,1.87,1.36,3.75,1.86,5.63,1.97,7.36.96,15.05-2.85,21.65-2.21,3.83-5.21,7.02-8.77,9.42Z" class="cls-7"/>
|
|
78
|
+
<path d="M546.17,455.55h0c-4.21,3.36-9.07,6.21-14.56,8.56h0c-3.53,1.51-7.3,2.81-11.3,3.88-4,1.07-7.92,1.84-11.73,2.29-1.13-5.02-1.23-10.6-.32-16.69,2.51-.37,5.1-.91,7.76-1.63,2.65-.71,5.17-1.53,7.53-2.47h0c5.72-2.26,10.51-5.15,14.29-8.63.35-.32.69-.65,1.03-.99.52-.52.98-1.07,1.38-1.65,11.82-14.27,4.55-28.47-5.63-35.01,5.85.86,11.48,3.54,15.98,8.03,11.13,11.13,11.13,29.23,0,40.36-1.38,1.38-2.86,2.7-4.43,3.94Z" class="cls-1"/>
|
|
79
|
+
<path d="M540.26,438.22c3.22-4.66,2.76-11.1-1.38-15.24-4.66-4.66-12.24-4.66-16.9,0-.33.33-.66.68-.98,1.03-4.77-3.57-9.68-6.36-14.69-8.33,1.25-1.57,2.57-3.05,3.95-4.43,6.63-6.63,15.74-9.31,24.38-8.04h0c10.17,6.54,17.45,20.74,5.63,35.01Z" class="cls-6"/>
|
|
80
|
+
<rect transform="translate(-159.85 490.67) rotate(-45)" height="0" width="0" y="438.29" x="512.36" class="cls-4"/>
|
|
81
|
+
<path d="M496.38,429.83c-.66-.14-1.31-.26-1.95-.35" class="cls-5"/>
|
|
82
|
+
<g>
|
|
83
|
+
<g>
|
|
84
|
+
<path d="M610.02,478.03c-.16,0-.35-.1-.58-.29-.23-.19-.43-.45-.58-.76l-16.42-40.41c-.54-1.63-1.36-2.97-2.45-4.02-1.09-1.05-2.25-1.76-3.49-2.15-.7-.23-1.3-.52-1.8-.87-.51-.35-.76-.79-.76-1.34s.31-.87.93-.99c.62-.12,1.12-.17,1.51-.17,1.32,0,2.46.04,3.44.12.97.08,1.94.17,2.91.29.97.12,2.04.17,3.2.17,1.24,0,2.43-.06,3.55-.17,1.12-.12,2.23-.21,3.32-.29,1.09-.08,2.29-.12,3.61-.12.39,0,.89.08,1.51.23.62.16.93.47.93.93,0,.62-.29,1.07-.87,1.34-.58.27-1.18.56-1.8.87-.78.23-1.38.76-1.8,1.57-.43.82-.64,1.8-.64,2.97s.23,2.33.7,3.49l8.27,21.54c.08.23.23.35.47.35s.39-.12.47-.35l7.92-18.63c.31-.85.52-1.69.64-2.5.12-.82.17-1.61.17-2.39,0-1.4-.58-2.62-1.75-3.67-1.16-1.05-2.41-1.84-3.73-2.39-.7-.23-1.3-.5-1.8-.82-.51-.31-.76-.78-.76-1.4,0-.47.31-.78.93-.93.62-.15,1.2-.23,1.75-.23,1.4,0,2.83.1,4.31.29,1.47.2,3.1.29,4.89.29,2.17,0,4.08-.1,5.71-.29,1.63-.19,3.22-.29,4.77-.29.47,0,.99.08,1.57.23.58.16.87.51.87,1.05s-.29.97-.87,1.28c-.58.31-1.18.58-1.8.82-.86.31-1.65.74-2.39,1.28-.74.54-1.11,1.48-1.11,2.79,0,.62.06,1.26.17,1.92.12.66.33,1.34.64,2.04l8.15,20.96c.23.62.47.93.7.93s.47-.27.7-.82l8.04-19.21c.31-.7.52-1.49.64-2.39.12-.89.17-1.65.17-2.27,0-1.32-.41-2.43-1.22-3.32-.82-.89-1.69-1.49-2.62-1.8-.62-.23-1.22-.5-1.8-.82-.58-.31-.87-.78-.87-1.4,0-.47.31-.78.93-.93.62-.15,1.12-.23,1.51-.23,1.94,0,3.4.08,4.37.23.97.16,2.35.23,4.13.23,1.24,0,2.17-.04,2.79-.12.62-.08,1.22-.15,1.8-.23.58-.08,1.42-.12,2.5-.12.47,0,.99.06,1.57.17.58.12.87.45.87.99s-.25.99-.76,1.34c-.51.35-1.07.64-1.69.87-1.32.39-2.52,1.28-3.61,2.68-1.09,1.4-2.02,2.99-2.79,4.77l-16.07,39.01c-.31.62-.78.93-1.4.93-.47,0-.89-.31-1.28-.93l-12.93-31.21c-.16-.47-.35-.7-.58-.7s-.43.27-.58.82l-13.04,31.09c-.31.7-.78,1.05-1.4,1.05Z" class="cls-9"/>
|
|
85
|
+
<path d="M688.04,476.75c-4.19,0-7.9-1.07-11.12-3.2-3.22-2.13-5.76-5.12-7.63-8.97-1.86-3.84-2.79-8.29-2.79-13.33,0-4.58,1.07-8.77,3.2-12.58,2.13-3.8,4.99-6.85,8.56-9.14,3.57-2.29,7.49-3.44,11.76-3.44,3.18,0,6.04.64,8.56,1.92,2.52,1.28,4.5,3.07,5.94,5.36,1.44,2.29,2.15,4.91,2.15,7.86,0,2.56-1.2,3.84-3.61,3.84h-24.11c-1.09,0-1.86.31-2.33.93-.47.62-.7,1.75-.7,3.38,0,3.42.78,6.54,2.33,9.37,1.55,2.83,3.61,5.11,6.17,6.81,2.56,1.71,5.39,2.56,8.5,2.56,2.33,0,4.44-.45,6.35-1.34,1.9-.89,3.67-2.15,5.3-3.78.23-.31.45-.54.64-.7.19-.15.41-.23.64-.23.7,0,1.05.43,1.05,1.28,0,1.24-.54,2.72-1.63,4.42-1.09,1.63-2.47,3.13-4.13,4.48-1.67,1.36-3.61,2.45-5.82,3.26-2.21.82-4.64,1.22-7.28,1.22ZM679.08,441.11h9.32c2.02,0,3.61-.04,4.77-.12,1.16-.08,2.25-.23,3.26-.47.39-.15.66-.48.82-.99.15-.5.23-1.15.23-1.92,0-2.17-.89-4.02-2.68-5.53-1.79-1.51-3.92-2.27-6.4-2.27-1.71,0-3.4.51-5.07,1.51-1.67,1.01-3.05,2.27-4.13,3.78-1.09,1.51-1.59,3.05-1.51,4.6,0,.93.47,1.4,1.4,1.4Z" class="cls-9"/>
|
|
86
|
+
<path d="M759.66,476.75c-3.96,0-7.53-1.03-10.71-3.09-3.18-2.06-5.71-4.87-7.57-8.44-1.86-3.57-2.79-7.57-2.79-11.99,0-5.05,1.12-9.63,3.38-13.74,2.25-4.11,5.28-7.37,9.08-9.78,3.8-2.41,7.99-3.61,12.58-3.61,5.51,0,10.25,1.59,14.21,4.77.85.78,1.28,1.51,1.28,2.21,0,.54-.29,1.22-.87,2.04-.58.82-1.28,1.51-2.1,2.1-.82.58-1.57.87-2.27.87-.47,0-.95-.15-1.46-.47-.51-.31-.99-.66-1.46-1.05-1.86-1.47-3.82-2.78-5.88-3.9-2.06-1.12-3.82-1.69-5.3-1.69-3.49,0-6.27,1.57-8.33,4.72-2.06,3.14-3.09,7.55-3.09,13.22,0,3.73.72,7.03,2.15,9.9,1.44,2.87,3.42,5.12,5.94,6.75,2.52,1.63,5.41,2.45,8.68,2.45,2.25,0,4.21-.37,5.88-1.11,1.67-.74,3.44-2,5.3-3.78.23-.15.48-.31.76-.47.27-.16.52-.23.76-.23.85,0,1.28.58,1.28,1.75,0,.39-.12.87-.35,1.46-.23.58-.58,1.22-1.05,1.92-1.09,1.55-2.52,3.05-4.31,4.48-1.79,1.44-3.84,2.58-6.17,3.44-2.33.85-4.85,1.28-7.57,1.28Z" class="cls-9"/>
|
|
87
|
+
<path d="M808.22,476.63c-4.43,0-8.44-1.03-12.05-3.09-3.61-2.06-6.46-4.87-8.56-8.44-2.1-3.57-3.14-7.65-3.14-12.23,0-3.42.66-6.71,1.98-9.9,1.32-3.18,3.18-6.06,5.59-8.62,2.41-2.56,5.2-4.6,8.38-6.11,3.18-1.51,6.6-2.27,10.25-2.27,4.58,0,8.73,1.11,12.46,3.32,3.73,2.21,6.68,5.11,8.85,8.68,2.17,3.57,3.26,7.49,3.26,11.76,0,4.66-1.01,9.05-3.03,13.16-2.02,4.12-5.03,7.43-9.02,9.96-4,2.52-8.99,3.78-14.96,3.78ZM810.67,472.55c2.25,0,4.27-.45,6.06-1.34,1.79-.89,3.18-2.27,4.19-4.13.93-1.79,1.57-3.98,1.92-6.58.35-2.6.52-5.26.52-7.98,0-3.88-.62-7.53-1.86-10.95-1.24-3.42-2.95-6.17-5.12-8.27-2.17-2.1-4.74-3.14-7.69-3.14-1.79,0-3.4.29-4.83.87-1.44.58-2.74,1.57-3.9,2.97-1.48,1.79-2.45,4.1-2.91,6.93-.47,2.83-.7,5.92-.7,9.26,0,3.73.62,7.3,1.86,10.71,1.24,3.42,2.93,6.21,5.07,8.38,2.13,2.17,4.6,3.26,7.39,3.26Z" class="cls-9"/>
|
|
88
|
+
</g>
|
|
89
|
+
<path d="M721.82,459.27c-1.9,0-3.57-.7-5-2.1-1.43-1.4-2.14-3.08-2.14-5.04,0-2.08.71-3.84,2.14-5.26,1.43-1.43,3.09-2.14,5-2.14,2.14,0,3.91.71,5.31,2.14,1.4,1.43,2.1,3.18,2.1,5.26,0,1.96-.7,3.64-2.1,5.04-1.4,1.4-3.17,2.1-5.31,2.1Z" class="cls-9"/>
|
|
90
|
+
</g>
|
|
91
|
+
</svg>
|