freemt
commited on
Commit
·
231976d
1
Parent(s):
be292ba
first commit
Browse files- .flake8 +19 -0
- .github/workflows/codeql-analysis.yml- +67 -0
- .github/workflows/routine-tests.yml +30 -0
- .gitignore +143 -0
- LICENSE +21 -0
- README1.md +18 -0
- app.py +11 -0
- litbee/__init__.py +5 -0
- litbee/__main__.py +45 -0
- litbee/litbee.py +7 -0
- nodemon.json +21 -0
- package.json +21 -0
- poetry.lock +389 -0
- poetry.toml +3 -0
- pyproject.toml +59 -0
- pyrightconfig.json +9 -0
- requirements.txt +8 -0
- tests/__init__.py +1 -0
- tests/test_litbee.py +17 -0
.flake8
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[flake8]
|
| 2 |
+
ignore =
|
| 3 |
+
D203,
|
| 4 |
+
# line too long
|
| 5 |
+
E501
|
| 6 |
+
per-file-ignores =
|
| 7 |
+
# imported but unused
|
| 8 |
+
# __init__.py: F401
|
| 9 |
+
test_*.py: F401
|
| 10 |
+
exclude =
|
| 11 |
+
.git,
|
| 12 |
+
__pycache__,
|
| 13 |
+
docs/source/conf.py,
|
| 14 |
+
old,
|
| 15 |
+
build,
|
| 16 |
+
dist,
|
| 17 |
+
.venv
|
| 18 |
+
pad*.py
|
| 19 |
+
max-complexity = 25
|
.github/workflows/codeql-analysis.yml-
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# For most projects, this workflow file will not need changing; you simply need
|
| 2 |
+
# to commit it to your repository.
|
| 3 |
+
#
|
| 4 |
+
# You may wish to alter this file to override the set of languages analyzed,
|
| 5 |
+
# or to provide custom queries or build logic.
|
| 6 |
+
#
|
| 7 |
+
# ******** NOTE ********
|
| 8 |
+
# We have attempted to detect the languages in your repository. Please check
|
| 9 |
+
# the `language` matrix defined below to confirm you have the correct set of
|
| 10 |
+
# supported CodeQL languages.
|
| 11 |
+
#
|
| 12 |
+
name: "CodeQL"
|
| 13 |
+
|
| 14 |
+
on:
|
| 15 |
+
push:
|
| 16 |
+
branches: [ master ]
|
| 17 |
+
pull_request:
|
| 18 |
+
# The branches below must be a subset of the branches above
|
| 19 |
+
branches: [ master ]
|
| 20 |
+
schedule:
|
| 21 |
+
- cron: '16 15 * * 2'
|
| 22 |
+
|
| 23 |
+
jobs:
|
| 24 |
+
analyze:
|
| 25 |
+
name: Analyze
|
| 26 |
+
runs-on: ubuntu-latest
|
| 27 |
+
|
| 28 |
+
strategy:
|
| 29 |
+
fail-fast: false
|
| 30 |
+
matrix:
|
| 31 |
+
language: [ 'python' ]
|
| 32 |
+
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
|
| 33 |
+
# Learn more:
|
| 34 |
+
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
|
| 35 |
+
|
| 36 |
+
steps:
|
| 37 |
+
- name: Checkout repository
|
| 38 |
+
uses: actions/checkout@v2
|
| 39 |
+
|
| 40 |
+
# Initializes the CodeQL tools for scanning.
|
| 41 |
+
- name: Initialize CodeQL
|
| 42 |
+
uses: github/codeql-action/init@v1
|
| 43 |
+
with:
|
| 44 |
+
languages: ${{ matrix.language }}
|
| 45 |
+
# If you wish to specify custom queries, you can do so here or in a config file.
|
| 46 |
+
# By default, queries listed here will override any specified in a config file.
|
| 47 |
+
# Prefix the list here with "+" to use these queries and those in the config file.
|
| 48 |
+
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
| 49 |
+
|
| 50 |
+
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
| 51 |
+
# If this step fails, then you should remove it and run the build manually (see below)
|
| 52 |
+
- name: Autobuild
|
| 53 |
+
uses: github/codeql-action/autobuild@v1
|
| 54 |
+
|
| 55 |
+
# ℹ️ Command-line programs to run using the OS shell.
|
| 56 |
+
# 📚 https://git.io/JvXDl
|
| 57 |
+
|
| 58 |
+
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
| 59 |
+
# and modify them (or add more) to build your code if your project
|
| 60 |
+
# uses a compiled language
|
| 61 |
+
|
| 62 |
+
#- run: |
|
| 63 |
+
# make bootstrap
|
| 64 |
+
# make release
|
| 65 |
+
|
| 66 |
+
- name: Perform CodeQL Analysis
|
| 67 |
+
uses: github/codeql-action/analyze@v1
|
.github/workflows/routine-tests.yml
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
name: pytest
|
| 2 |
+
|
| 3 |
+
on:
|
| 4 |
+
push:
|
| 5 |
+
|
| 6 |
+
jobs:
|
| 7 |
+
flake8-pytest:
|
| 8 |
+
strategy:
|
| 9 |
+
fail-fast: false
|
| 10 |
+
matrix:
|
| 11 |
+
python-version: [3.8]
|
| 12 |
+
poetry-version: [1.1.2]
|
| 13 |
+
os: [ubuntu-18.04, macos-latest, windows-latest]
|
| 14 |
+
runs-on: ${{ matrix.os }}
|
| 15 |
+
steps:
|
| 16 |
+
- uses: actions/checkout@v2
|
| 17 |
+
- uses: actions/setup-python@v2
|
| 18 |
+
with:
|
| 19 |
+
python-version: ${{ matrix.python-version }}
|
| 20 |
+
- uses: abatilo/[email protected]
|
| 21 |
+
with:
|
| 22 |
+
poetry-version: ${{ matrix.poetry-version }}
|
| 23 |
+
- name: Install packages
|
| 24 |
+
run: poetry install # --no-dev
|
| 25 |
+
- name: Run flake8
|
| 26 |
+
run: |
|
| 27 |
+
poetry run flake8 --exit-zero
|
| 28 |
+
# poetry run pytest
|
| 29 |
+
- name: Run pytest
|
| 30 |
+
run: poetry run pytest tests
|
.gitignore
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
| 98 |
+
__pypackages__/
|
| 99 |
+
|
| 100 |
+
# Celery stuff
|
| 101 |
+
celerybeat-schedule
|
| 102 |
+
celerybeat.pid
|
| 103 |
+
|
| 104 |
+
# SageMath parsed files
|
| 105 |
+
*.sage.py
|
| 106 |
+
|
| 107 |
+
# Environments
|
| 108 |
+
.env
|
| 109 |
+
.venv
|
| 110 |
+
env/
|
| 111 |
+
venv/
|
| 112 |
+
ENV/
|
| 113 |
+
env.bak/
|
| 114 |
+
venv.bak/
|
| 115 |
+
|
| 116 |
+
# Spyder project settings
|
| 117 |
+
.spyderproject
|
| 118 |
+
.spyproject
|
| 119 |
+
|
| 120 |
+
# Rope project settings
|
| 121 |
+
.ropeproject
|
| 122 |
+
|
| 123 |
+
# mkdocs documentation
|
| 124 |
+
/site
|
| 125 |
+
|
| 126 |
+
# mypy
|
| 127 |
+
.mypy_cache/
|
| 128 |
+
.dmypy.json
|
| 129 |
+
dmypy.json
|
| 130 |
+
|
| 131 |
+
# Pyre type checker
|
| 132 |
+
.pyre/
|
| 133 |
+
|
| 134 |
+
# pytype static type analyzer
|
| 135 |
+
.pytype/
|
| 136 |
+
|
| 137 |
+
# Cython debug symbols
|
| 138 |
+
cython_debug/
|
| 139 |
+
*.bat
|
| 140 |
+
*.swp
|
| 141 |
+
links/
|
| 142 |
+
# .gitignore
|
| 143 |
+
node_modules
|
LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MIT License
|
| 2 |
+
|
| 3 |
+
Copyright (c) 2020 ffreemt
|
| 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.
|
README1.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# litbee
|
| 2 |
+
[](https://github.com/ffreemt/litbee/actions)[](https://www.python.org/downloads/)[](https://github.com/psf/black)[](https://opensource.org/licenses/MIT)[](https://badge.fury.io/py/litbee)
|
| 3 |
+
|
| 4 |
+
litbee descr
|
| 5 |
+
|
| 6 |
+
## Install it
|
| 7 |
+
|
| 8 |
+
```shell
|
| 9 |
+
pip install git+https://github.com/ffreemt/litbee
|
| 10 |
+
# poetry add git+https://github.com/ffreemt/litbee
|
| 11 |
+
# git clone https://github.com/ffreemt/litbee && cd litbee
|
| 12 |
+
```
|
| 13 |
+
|
| 14 |
+
## Use it
|
| 15 |
+
```python
|
| 16 |
+
from litbee import litbee
|
| 17 |
+
|
| 18 |
+
```
|
app.py
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import streamlit as st
|
| 2 |
+
from install import install
|
| 3 |
+
|
| 4 |
+
install("logzero")
|
| 5 |
+
from logzero import logzero
|
| 6 |
+
|
| 7 |
+
logger.info("streamlit version: %s", st.__version__)
|
| 8 |
+
|
| 9 |
+
x = st.slider('Select a value')
|
| 10 |
+
st.write(x, 'squared is', x * x)
|
| 11 |
+
st.write(" streamlit version", st.__version__)
|
litbee/__init__.py
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Init."""
|
| 2 |
+
__version__ = "0.1.0"
|
| 3 |
+
from .litbee import litbee
|
| 4 |
+
|
| 5 |
+
__all__ = ("litbee",)
|
litbee/__main__.py
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Prep __main__.py."""
|
| 2 |
+
# pylint: disable=invalid-name
|
| 3 |
+
from pathlib import Path
|
| 4 |
+
from typing import Optional
|
| 5 |
+
|
| 6 |
+
import logzero
|
| 7 |
+
import typer
|
| 8 |
+
from logzero import logger
|
| 9 |
+
from set_loglevel import set_loglevel
|
| 10 |
+
|
| 11 |
+
from litbee import __version__, litbee
|
| 12 |
+
|
| 13 |
+
logzero.loglevel(set_loglevel())
|
| 14 |
+
|
| 15 |
+
app = typer.Typer(
|
| 16 |
+
name="litbee",
|
| 17 |
+
add_completion=False,
|
| 18 |
+
help="litbee help",
|
| 19 |
+
)
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
def _version_callback(value: bool) -> None:
|
| 23 |
+
if value:
|
| 24 |
+
typer.echo(f"{app.info.name} v.{__version__} -- ...")
|
| 25 |
+
raise typer.Exit()
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
@app.command()
|
| 29 |
+
def main(
|
| 30 |
+
version: Optional[bool] = typer.Option( # pylint: disable=(unused-argument
|
| 31 |
+
None,
|
| 32 |
+
"--version",
|
| 33 |
+
"-v",
|
| 34 |
+
"-V",
|
| 35 |
+
help="Show version info and exit.",
|
| 36 |
+
callback=_version_callback,
|
| 37 |
+
is_eager=True,
|
| 38 |
+
),
|
| 39 |
+
):
|
| 40 |
+
"""Define."""
|
| 41 |
+
...
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
if __name__ == "__main__":
|
| 45 |
+
app()
|
litbee/litbee.py
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Define litbee."""
|
| 2 |
+
from logzero import logger
|
| 3 |
+
|
| 4 |
+
|
| 5 |
+
def litbee():
|
| 6 |
+
"""Define litbee."""
|
| 7 |
+
logger.debug(" entry ")
|
nodemon.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"restartable": "rs",
|
| 3 |
+
"ignore": [
|
| 4 |
+
".venv",
|
| 5 |
+
".git",
|
| 6 |
+
"node_modules/**/node_modules"
|
| 7 |
+
],
|
| 8 |
+
"verbose": true,
|
| 9 |
+
"execMap": {
|
| 10 |
+
"js": "node --harmony"
|
| 11 |
+
},
|
| 12 |
+
"watch": [
|
| 13 |
+
"tests",
|
| 14 |
+
"test/fixtures/",
|
| 15 |
+
"test/samples/"
|
| 16 |
+
],
|
| 17 |
+
"env": {
|
| 18 |
+
"NODE_ENV": "development"
|
| 19 |
+
},
|
| 20 |
+
"ext": "js json py"
|
| 21 |
+
}
|
package.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"dependencies": {
|
| 3 |
+
"npm-run-all": "^4.1.5"
|
| 4 |
+
},
|
| 5 |
+
"scripts": {
|
| 6 |
+
"start": "pyright && pytest && yarn style",
|
| 7 |
+
"test": "nodemon -w tests -w litbee -x pytest tests",
|
| 8 |
+
"pyright": "nodemon -w litbee -w .venv -e .py -x pyright litbee tests",
|
| 9 |
+
"pytest": "nodemon -w tests -w litbee -e .py -x pytest tests litbee",
|
| 10 |
+
"style": "nodemon -w litbee -w tests -x \"black tests litbee && python -m flake8\"",
|
| 11 |
+
"docstyle": "nodemon -w litbee -w tests -x pydocstyle --convention=google tests litbee",
|
| 12 |
+
"pylint": "nodemon -w litbee -e .py -x pylint litbee",
|
| 13 |
+
"test:litbee": "nodemon -w tests -e .py -x pytest -k litbee tests",
|
| 14 |
+
"publish": "poetry build && poetry publish",
|
| 15 |
+
"black": "black tests litbee",
|
| 16 |
+
"flake8": "flake8 tests litbee",
|
| 17 |
+
"pflake8": "pflake8 tests litbee",
|
| 18 |
+
"pep257": "pep257 tests litbee",
|
| 19 |
+
"final": "run-s docstyle black flake8 pytest"
|
| 20 |
+
}
|
| 21 |
+
}
|
poetry.lock
ADDED
|
@@ -0,0 +1,389 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[[package]]
|
| 2 |
+
name = "asttokens"
|
| 3 |
+
version = "2.0.5"
|
| 4 |
+
description = "Annotate AST trees with source code positions"
|
| 5 |
+
category = "main"
|
| 6 |
+
optional = false
|
| 7 |
+
python-versions = "*"
|
| 8 |
+
|
| 9 |
+
[package.dependencies]
|
| 10 |
+
six = "*"
|
| 11 |
+
|
| 12 |
+
[package.extras]
|
| 13 |
+
test = ["astroid", "pytest"]
|
| 14 |
+
|
| 15 |
+
[[package]]
|
| 16 |
+
name = "atomicwrites"
|
| 17 |
+
version = "1.4.0"
|
| 18 |
+
description = "Atomic file writes."
|
| 19 |
+
category = "dev"
|
| 20 |
+
optional = false
|
| 21 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
| 22 |
+
|
| 23 |
+
[[package]]
|
| 24 |
+
name = "attrs"
|
| 25 |
+
version = "21.4.0"
|
| 26 |
+
description = "Classes Without Boilerplate"
|
| 27 |
+
category = "dev"
|
| 28 |
+
optional = false
|
| 29 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
| 30 |
+
|
| 31 |
+
[package.extras]
|
| 32 |
+
dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"]
|
| 33 |
+
docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"]
|
| 34 |
+
tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"]
|
| 35 |
+
tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"]
|
| 36 |
+
|
| 37 |
+
[[package]]
|
| 38 |
+
name = "colorama"
|
| 39 |
+
version = "0.4.4"
|
| 40 |
+
description = "Cross-platform colored terminal text."
|
| 41 |
+
category = "main"
|
| 42 |
+
optional = false
|
| 43 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
| 44 |
+
|
| 45 |
+
[[package]]
|
| 46 |
+
name = "executing"
|
| 47 |
+
version = "0.8.3"
|
| 48 |
+
description = "Get the currently executing AST node of a frame, and other information"
|
| 49 |
+
category = "main"
|
| 50 |
+
optional = false
|
| 51 |
+
python-versions = "*"
|
| 52 |
+
|
| 53 |
+
[[package]]
|
| 54 |
+
name = "flake8"
|
| 55 |
+
version = "3.9.2"
|
| 56 |
+
description = "the modular source code checker: pep8 pyflakes and co"
|
| 57 |
+
category = "dev"
|
| 58 |
+
optional = false
|
| 59 |
+
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
|
| 60 |
+
|
| 61 |
+
[package.dependencies]
|
| 62 |
+
mccabe = ">=0.6.0,<0.7.0"
|
| 63 |
+
pycodestyle = ">=2.7.0,<2.8.0"
|
| 64 |
+
pyflakes = ">=2.3.0,<2.4.0"
|
| 65 |
+
|
| 66 |
+
[[package]]
|
| 67 |
+
name = "icecream"
|
| 68 |
+
version = "2.1.2"
|
| 69 |
+
description = "Never use print() to debug again; inspect variables, expressions, and program execution with a single, simple function call."
|
| 70 |
+
category = "main"
|
| 71 |
+
optional = false
|
| 72 |
+
python-versions = "*"
|
| 73 |
+
|
| 74 |
+
[package.dependencies]
|
| 75 |
+
asttokens = ">=2.0.1"
|
| 76 |
+
colorama = ">=0.3.9"
|
| 77 |
+
executing = ">=0.3.1"
|
| 78 |
+
pygments = ">=2.2.0"
|
| 79 |
+
|
| 80 |
+
[[package]]
|
| 81 |
+
name = "iniconfig"
|
| 82 |
+
version = "1.1.1"
|
| 83 |
+
description = "iniconfig: brain-dead simple config-ini parsing"
|
| 84 |
+
category = "dev"
|
| 85 |
+
optional = false
|
| 86 |
+
python-versions = "*"
|
| 87 |
+
|
| 88 |
+
[[package]]
|
| 89 |
+
name = "install"
|
| 90 |
+
version = "1.3.5"
|
| 91 |
+
description = "Install packages from within code"
|
| 92 |
+
category = "main"
|
| 93 |
+
optional = false
|
| 94 |
+
python-versions = ">=2.7, >=3.5"
|
| 95 |
+
|
| 96 |
+
[[package]]
|
| 97 |
+
name = "logzero"
|
| 98 |
+
version = "1.7.0"
|
| 99 |
+
description = "Robust and effective logging for Python 2 and 3"
|
| 100 |
+
category = "main"
|
| 101 |
+
optional = false
|
| 102 |
+
python-versions = "*"
|
| 103 |
+
|
| 104 |
+
[package.dependencies]
|
| 105 |
+
colorama = {version = "*", markers = "sys_platform == \"win32\""}
|
| 106 |
+
|
| 107 |
+
[[package]]
|
| 108 |
+
name = "mccabe"
|
| 109 |
+
version = "0.6.1"
|
| 110 |
+
description = "McCabe checker, plugin for flake8"
|
| 111 |
+
category = "dev"
|
| 112 |
+
optional = false
|
| 113 |
+
python-versions = "*"
|
| 114 |
+
|
| 115 |
+
[[package]]
|
| 116 |
+
name = "packaging"
|
| 117 |
+
version = "21.3"
|
| 118 |
+
description = "Core utilities for Python packages"
|
| 119 |
+
category = "dev"
|
| 120 |
+
optional = false
|
| 121 |
+
python-versions = ">=3.6"
|
| 122 |
+
|
| 123 |
+
[package.dependencies]
|
| 124 |
+
pyparsing = ">=2.0.2,<3.0.5 || >3.0.5"
|
| 125 |
+
|
| 126 |
+
[[package]]
|
| 127 |
+
name = "pastel"
|
| 128 |
+
version = "0.2.1"
|
| 129 |
+
description = "Bring colors to your terminal."
|
| 130 |
+
category = "dev"
|
| 131 |
+
optional = false
|
| 132 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
| 133 |
+
|
| 134 |
+
[[package]]
|
| 135 |
+
name = "pluggy"
|
| 136 |
+
version = "1.0.0"
|
| 137 |
+
description = "plugin and hook calling mechanisms for python"
|
| 138 |
+
category = "dev"
|
| 139 |
+
optional = false
|
| 140 |
+
python-versions = ">=3.6"
|
| 141 |
+
|
| 142 |
+
[package.extras]
|
| 143 |
+
dev = ["pre-commit", "tox"]
|
| 144 |
+
testing = ["pytest", "pytest-benchmark"]
|
| 145 |
+
|
| 146 |
+
[[package]]
|
| 147 |
+
name = "poethepoet"
|
| 148 |
+
version = "0.10.0"
|
| 149 |
+
description = "A task runner that works well with poetry."
|
| 150 |
+
category = "dev"
|
| 151 |
+
optional = false
|
| 152 |
+
python-versions = ">=3.6,<4.0"
|
| 153 |
+
|
| 154 |
+
[package.dependencies]
|
| 155 |
+
pastel = ">=0.2.0,<0.3.0"
|
| 156 |
+
tomlkit = ">=0.6.0,<1.0.0"
|
| 157 |
+
|
| 158 |
+
[[package]]
|
| 159 |
+
name = "py"
|
| 160 |
+
version = "1.11.0"
|
| 161 |
+
description = "library with cross-python path, ini-parsing, io, code, log facilities"
|
| 162 |
+
category = "dev"
|
| 163 |
+
optional = false
|
| 164 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
| 165 |
+
|
| 166 |
+
[[package]]
|
| 167 |
+
name = "pycodestyle"
|
| 168 |
+
version = "2.7.0"
|
| 169 |
+
description = "Python style guide checker"
|
| 170 |
+
category = "dev"
|
| 171 |
+
optional = false
|
| 172 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
| 173 |
+
|
| 174 |
+
[[package]]
|
| 175 |
+
name = "pydocstyle"
|
| 176 |
+
version = "6.1.1"
|
| 177 |
+
description = "Python docstring style checker"
|
| 178 |
+
category = "dev"
|
| 179 |
+
optional = false
|
| 180 |
+
python-versions = ">=3.6"
|
| 181 |
+
|
| 182 |
+
[package.dependencies]
|
| 183 |
+
snowballstemmer = "*"
|
| 184 |
+
|
| 185 |
+
[package.extras]
|
| 186 |
+
toml = ["toml"]
|
| 187 |
+
|
| 188 |
+
[[package]]
|
| 189 |
+
name = "pyflakes"
|
| 190 |
+
version = "2.3.1"
|
| 191 |
+
description = "passive checker of Python programs"
|
| 192 |
+
category = "dev"
|
| 193 |
+
optional = false
|
| 194 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
| 195 |
+
|
| 196 |
+
[[package]]
|
| 197 |
+
name = "pygments"
|
| 198 |
+
version = "2.12.0"
|
| 199 |
+
description = "Pygments is a syntax highlighting package written in Python."
|
| 200 |
+
category = "main"
|
| 201 |
+
optional = false
|
| 202 |
+
python-versions = ">=3.6"
|
| 203 |
+
|
| 204 |
+
[[package]]
|
| 205 |
+
name = "pyparsing"
|
| 206 |
+
version = "3.0.9"
|
| 207 |
+
description = "pyparsing module - Classes and methods to define and execute parsing grammars"
|
| 208 |
+
category = "dev"
|
| 209 |
+
optional = false
|
| 210 |
+
python-versions = ">=3.6.8"
|
| 211 |
+
|
| 212 |
+
[package.extras]
|
| 213 |
+
diagrams = ["railroad-diagrams", "jinja2"]
|
| 214 |
+
|
| 215 |
+
[[package]]
|
| 216 |
+
name = "pytest"
|
| 217 |
+
version = "7.1.2"
|
| 218 |
+
description = "pytest: simple powerful testing with Python"
|
| 219 |
+
category = "dev"
|
| 220 |
+
optional = false
|
| 221 |
+
python-versions = ">=3.7"
|
| 222 |
+
|
| 223 |
+
[package.dependencies]
|
| 224 |
+
atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""}
|
| 225 |
+
attrs = ">=19.2.0"
|
| 226 |
+
colorama = {version = "*", markers = "sys_platform == \"win32\""}
|
| 227 |
+
iniconfig = "*"
|
| 228 |
+
packaging = "*"
|
| 229 |
+
pluggy = ">=0.12,<2.0"
|
| 230 |
+
py = ">=1.8.2"
|
| 231 |
+
tomli = ">=1.0.0"
|
| 232 |
+
|
| 233 |
+
[package.extras]
|
| 234 |
+
testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"]
|
| 235 |
+
|
| 236 |
+
[[package]]
|
| 237 |
+
name = "six"
|
| 238 |
+
version = "1.16.0"
|
| 239 |
+
description = "Python 2 and 3 compatibility utilities"
|
| 240 |
+
category = "main"
|
| 241 |
+
optional = false
|
| 242 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
|
| 243 |
+
|
| 244 |
+
[[package]]
|
| 245 |
+
name = "snowballstemmer"
|
| 246 |
+
version = "2.2.0"
|
| 247 |
+
description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms."
|
| 248 |
+
category = "dev"
|
| 249 |
+
optional = false
|
| 250 |
+
python-versions = "*"
|
| 251 |
+
|
| 252 |
+
[[package]]
|
| 253 |
+
name = "toml"
|
| 254 |
+
version = "0.10.2"
|
| 255 |
+
description = "Python Library for Tom's Obvious, Minimal Language"
|
| 256 |
+
category = "dev"
|
| 257 |
+
optional = false
|
| 258 |
+
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
|
| 259 |
+
|
| 260 |
+
[[package]]
|
| 261 |
+
name = "tomli"
|
| 262 |
+
version = "2.0.1"
|
| 263 |
+
description = "A lil' TOML parser"
|
| 264 |
+
category = "dev"
|
| 265 |
+
optional = false
|
| 266 |
+
python-versions = ">=3.7"
|
| 267 |
+
|
| 268 |
+
[[package]]
|
| 269 |
+
name = "tomlkit"
|
| 270 |
+
version = "0.10.2"
|
| 271 |
+
description = "Style preserving TOML library"
|
| 272 |
+
category = "dev"
|
| 273 |
+
optional = false
|
| 274 |
+
python-versions = ">=3.6,<4.0"
|
| 275 |
+
|
| 276 |
+
[metadata]
|
| 277 |
+
lock-version = "1.1"
|
| 278 |
+
python-versions = "^3.8.3"
|
| 279 |
+
content-hash = "2bff92ca626cd69937d6bf0eb3822eef80a8ce3da0cac329e5600ed03cba2b7e"
|
| 280 |
+
|
| 281 |
+
[metadata.files]
|
| 282 |
+
asttokens = [
|
| 283 |
+
{file = "asttokens-2.0.5-py2.py3-none-any.whl", hash = "sha256:0844691e88552595a6f4a4281a9f7f79b8dd45ca4ccea82e5e05b4bbdb76705c"},
|
| 284 |
+
{file = "asttokens-2.0.5.tar.gz", hash = "sha256:9a54c114f02c7a9480d56550932546a3f1fe71d8a02f1bc7ccd0ee3ee35cf4d5"},
|
| 285 |
+
]
|
| 286 |
+
atomicwrites = [
|
| 287 |
+
{file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"},
|
| 288 |
+
{file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"},
|
| 289 |
+
]
|
| 290 |
+
attrs = [
|
| 291 |
+
{file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"},
|
| 292 |
+
{file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"},
|
| 293 |
+
]
|
| 294 |
+
colorama = [
|
| 295 |
+
{file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
|
| 296 |
+
{file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"},
|
| 297 |
+
]
|
| 298 |
+
executing = [
|
| 299 |
+
{file = "executing-0.8.3-py2.py3-none-any.whl", hash = "sha256:d1eef132db1b83649a3905ca6dd8897f71ac6f8cac79a7e58a1a09cf137546c9"},
|
| 300 |
+
{file = "executing-0.8.3.tar.gz", hash = "sha256:c6554e21c6b060590a6d3be4b82fb78f8f0194d809de5ea7df1c093763311501"},
|
| 301 |
+
]
|
| 302 |
+
flake8 = [
|
| 303 |
+
{file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"},
|
| 304 |
+
{file = "flake8-3.9.2.tar.gz", hash = "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b"},
|
| 305 |
+
]
|
| 306 |
+
icecream = [
|
| 307 |
+
{file = "icecream-2.1.2-py2.py3-none-any.whl", hash = "sha256:04b9cea4d9931cf6960db0430ebf11fa34464ce7152e384ddf50f96d25b201b4"},
|
| 308 |
+
{file = "icecream-2.1.2.tar.gz", hash = "sha256:09300b2d1c678712410cbd47c95198eb1b580f66f311a554ccd6b9e758ece0ee"},
|
| 309 |
+
]
|
| 310 |
+
iniconfig = [
|
| 311 |
+
{file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"},
|
| 312 |
+
{file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"},
|
| 313 |
+
]
|
| 314 |
+
install = [
|
| 315 |
+
{file = "install-1.3.5-py3-none-any.whl", hash = "sha256:0d3fadf4aa62c95efe8d34757c8507eb46177f86c016c21c6551eafc6a53d5a9"},
|
| 316 |
+
{file = "install-1.3.5.tar.gz", hash = "sha256:e67c8a0be5ccf8cb4ffa17d090f3a61b6e820e6a7e21cd1d2c0f7bc59b18e647"},
|
| 317 |
+
]
|
| 318 |
+
logzero = [
|
| 319 |
+
{file = "logzero-1.7.0-py2.py3-none-any.whl", hash = "sha256:23eb1f717a2736f9ab91ca0d43160fd2c996ad49ae6bad34652d47aba908769d"},
|
| 320 |
+
{file = "logzero-1.7.0.tar.gz", hash = "sha256:7f73ddd3ae393457236f081ffebd044a3aa2e423a47ae6ddb5179ab90d0ad082"},
|
| 321 |
+
]
|
| 322 |
+
mccabe = [
|
| 323 |
+
{file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"},
|
| 324 |
+
{file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"},
|
| 325 |
+
]
|
| 326 |
+
packaging = [
|
| 327 |
+
{file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"},
|
| 328 |
+
{file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"},
|
| 329 |
+
]
|
| 330 |
+
pastel = [
|
| 331 |
+
{file = "pastel-0.2.1-py2.py3-none-any.whl", hash = "sha256:4349225fcdf6c2bb34d483e523475de5bb04a5c10ef711263452cb37d7dd4364"},
|
| 332 |
+
{file = "pastel-0.2.1.tar.gz", hash = "sha256:e6581ac04e973cac858828c6202c1e1e81fee1dc7de7683f3e1ffe0bfd8a573d"},
|
| 333 |
+
]
|
| 334 |
+
pluggy = [
|
| 335 |
+
{file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"},
|
| 336 |
+
{file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"},
|
| 337 |
+
]
|
| 338 |
+
poethepoet = [
|
| 339 |
+
{file = "poethepoet-0.10.0-py3-none-any.whl", hash = "sha256:6fb3021603d4421c6fcc40072bbcf150a6c52ef70ff4d3be089b8b04e015ef5a"},
|
| 340 |
+
{file = "poethepoet-0.10.0.tar.gz", hash = "sha256:70b97cb194b978dc464c70793e85e6f746cddf82b84a38bfb135946ad71ae19c"},
|
| 341 |
+
]
|
| 342 |
+
py = [
|
| 343 |
+
{file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"},
|
| 344 |
+
{file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"},
|
| 345 |
+
]
|
| 346 |
+
pycodestyle = [
|
| 347 |
+
{file = "pycodestyle-2.7.0-py2.py3-none-any.whl", hash = "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068"},
|
| 348 |
+
{file = "pycodestyle-2.7.0.tar.gz", hash = "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"},
|
| 349 |
+
]
|
| 350 |
+
pydocstyle = [
|
| 351 |
+
{file = "pydocstyle-6.1.1-py3-none-any.whl", hash = "sha256:6987826d6775056839940041beef5c08cc7e3d71d63149b48e36727f70144dc4"},
|
| 352 |
+
{file = "pydocstyle-6.1.1.tar.gz", hash = "sha256:1d41b7c459ba0ee6c345f2eb9ae827cab14a7533a88c5c6f7e94923f72df92dc"},
|
| 353 |
+
]
|
| 354 |
+
pyflakes = [
|
| 355 |
+
{file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"},
|
| 356 |
+
{file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"},
|
| 357 |
+
]
|
| 358 |
+
pygments = [
|
| 359 |
+
{file = "Pygments-2.12.0-py3-none-any.whl", hash = "sha256:dc9c10fb40944260f6ed4c688ece0cd2048414940f1cea51b8b226318411c519"},
|
| 360 |
+
{file = "Pygments-2.12.0.tar.gz", hash = "sha256:5eb116118f9612ff1ee89ac96437bb6b49e8f04d8a13b514ba26f620208e26eb"},
|
| 361 |
+
]
|
| 362 |
+
pyparsing = [
|
| 363 |
+
{file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"},
|
| 364 |
+
{file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"},
|
| 365 |
+
]
|
| 366 |
+
pytest = [
|
| 367 |
+
{file = "pytest-7.1.2-py3-none-any.whl", hash = "sha256:13d0e3ccfc2b6e26be000cb6568c832ba67ba32e719443bfe725814d3c42433c"},
|
| 368 |
+
{file = "pytest-7.1.2.tar.gz", hash = "sha256:a06a0425453864a270bc45e71f783330a7428defb4230fb5e6a731fde06ecd45"},
|
| 369 |
+
]
|
| 370 |
+
six = [
|
| 371 |
+
{file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
|
| 372 |
+
{file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
|
| 373 |
+
]
|
| 374 |
+
snowballstemmer = [
|
| 375 |
+
{file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"},
|
| 376 |
+
{file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"},
|
| 377 |
+
]
|
| 378 |
+
toml = [
|
| 379 |
+
{file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"},
|
| 380 |
+
{file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
|
| 381 |
+
]
|
| 382 |
+
tomli = [
|
| 383 |
+
{file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
|
| 384 |
+
{file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
|
| 385 |
+
]
|
| 386 |
+
tomlkit = [
|
| 387 |
+
{file = "tomlkit-0.10.2-py3-none-any.whl", hash = "sha256:905cf92c2111ef80d355708f47ac24ad1b6fc2adc5107455940088c9bbecaedb"},
|
| 388 |
+
{file = "tomlkit-0.10.2.tar.gz", hash = "sha256:30d54c0b914e595f3d10a87888599eab5321a2a69abc773bbefff51599b72db6"},
|
| 389 |
+
]
|
poetry.toml
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[virtualenvs]
|
| 2 |
+
create = true
|
| 3 |
+
in-project = true
|
pyproject.toml
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[tool.poetry]
|
| 2 |
+
name = "litbee"
|
| 3 |
+
version = "0.1.0"
|
| 4 |
+
description = "align texts via streamlit "
|
| 5 |
+
authors = ["ffreemt"]
|
| 6 |
+
license = "MIT"
|
| 7 |
+
readme = "README.md"
|
| 8 |
+
repository = "https://github.com/ffreemt/litbee"
|
| 9 |
+
|
| 10 |
+
[tool.poetry.dependencies]
|
| 11 |
+
python = "^3.8.3"
|
| 12 |
+
logzero = "^1.7.0"
|
| 13 |
+
icecream = "^2.1.1"
|
| 14 |
+
install = "^1.3.5"
|
| 15 |
+
|
| 16 |
+
[tool.poe.executor]
|
| 17 |
+
type = "poetry"
|
| 18 |
+
|
| 19 |
+
[tool.poe.tasks]
|
| 20 |
+
memo = "echo poe test or poetry run poe test"
|
| 21 |
+
test = "pytest tests"
|
| 22 |
+
build = "poetry build"
|
| 23 |
+
_publish = "poetry publish"
|
| 24 |
+
release = ["test", "build", "_publish"]
|
| 25 |
+
lint = { cmd = "pylint litbee" }
|
| 26 |
+
format = "black tests litbee"
|
| 27 |
+
docstyle = "pydocstyle --convention=google tests litbee"
|
| 28 |
+
tunnel = {cmd = "ssh -CN ip_or_hostname_defined_in_hosts -L 9091:127.0.0.1:9091"}
|
| 29 |
+
|
| 30 |
+
[tool.poetry.dev-dependencies]
|
| 31 |
+
pytest = "^7.1"
|
| 32 |
+
flake8 = "^3.9.2"
|
| 33 |
+
pydocstyle = "^6.1.1"
|
| 34 |
+
toml = "^0.10.2"
|
| 35 |
+
# tbump = "^6.3.2"
|
| 36 |
+
poethepoet = "^0.10.0"
|
| 37 |
+
|
| 38 |
+
[tool.poetry.scripts]
|
| 39 |
+
"litbee" = "litbee.__main__:app"
|
| 40 |
+
|
| 41 |
+
[build-system]
|
| 42 |
+
requires = ["poetry-core>=1.0.0"]
|
| 43 |
+
build-backend = "poetry.core.masonry.api"
|
| 44 |
+
|
| 45 |
+
[tool.pytest.ini_options]
|
| 46 |
+
minversion = "6.0"
|
| 47 |
+
addopts = "-ra -q --doctest-modules"
|
| 48 |
+
log_cli = true
|
| 49 |
+
testpaths = [
|
| 50 |
+
"tests",
|
| 51 |
+
# "integration",
|
| 52 |
+
]
|
| 53 |
+
|
| 54 |
+
[tool.black]
|
| 55 |
+
skip-string-normalization = 0
|
| 56 |
+
|
| 57 |
+
[tool.isort]
|
| 58 |
+
profile = "black"
|
| 59 |
+
multi_line_output = 3
|
pyrightconfig.json
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"include": ["tests", "litbee"],
|
| 3 |
+
"venvPath": ".venv",
|
| 4 |
+
"reportTypeshedErrors": false,
|
| 5 |
+
"reportMissingImports": true,
|
| 6 |
+
"reportMissingTypeStubs": false,
|
| 7 |
+
"pythonVersion": "3.7",
|
| 8 |
+
"ignore": []
|
| 9 |
+
}
|
requirements.txt
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
asttokens==2.0.5
|
| 2 |
+
colorama==0.4.4; python_version >= "2.7" and python_full_version < "3.0.0" and sys_platform == "win32" or python_full_version >= "3.5.0" and sys_platform == "win32"
|
| 3 |
+
executing==0.8.3
|
| 4 |
+
icecream==2.1.2
|
| 5 |
+
install==1.3.5; python_version >= "3.5"
|
| 6 |
+
logzero==1.7.0
|
| 7 |
+
pygments==2.12.0; python_version >= "3.6"
|
| 8 |
+
six==1.16.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0"
|
tests/__init__.py
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"""Init."""
|
tests/test_litbee.py
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Test litbee."""
|
| 2 |
+
# pylint: disable=broad-except
|
| 3 |
+
from litbee import __version__
|
| 4 |
+
from litbee import litbee
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
def test_version():
|
| 8 |
+
"""Test version."""
|
| 9 |
+
assert __version__[:3] == "0.1"
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
def test_sanity():
|
| 13 |
+
"""Check sanity."""
|
| 14 |
+
try:
|
| 15 |
+
assert not litbee()
|
| 16 |
+
except Exception:
|
| 17 |
+
assert True
|