Skip to content

Commit

Permalink
feat: initial draft
Browse files Browse the repository at this point in the history
  • Loading branch information
Alessio committed Jan 19, 2024
1 parent bdbe076 commit b10adc9
Show file tree
Hide file tree
Showing 19 changed files with 2,267 additions and 0 deletions.
32 changes: 32 additions & 0 deletions .cruft.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"template": "https://github.com/radix-ai/poetry-cookiecutter",
"commit": "0168710e9b56ab046cd2cf34b60866805ec41f58",
"checkout": null,
"context": {
"cookiecutter": {
"package_name": "querytyper",
"package_description": "A Python package to queryy databases using a fully typed syntax.",
"package_url": "https://github.com/investsuite/querytyper",
"author_name": "Alessio Castrica",
"author_email": "[email protected]",
"python_version": "3.8",
"docker_image": "python:$PYTHON_VERSION-slim",
"development_environment": "simple",
"with_conventional_commits": "1",
"with_fastapi_api": "0",
"with_jupyter_lab": "0",
"with_pydantic_typing": "1",
"with_sentry_logging": "0",
"with_streamlit_app": "0",
"with_typer_cli": "0",
"continuous_integration": "GitHub",
"docstring_style": "NumPy",
"private_package_repository_name": "",
"private_package_repository_url": "",
"__package_name_kebab_case": "querytyper",
"__package_name_snake_case": "querytyper",
"_template": "https://github.com/radix-ai/poetry-cookiecutter"
}
},
"directory": null
}
52 changes: 52 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{
"name": "querytyper",
"dockerComposeFile": "../docker-compose.yml",
"service": "devcontainer",
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}/",
"remoteUser": "user",
"overrideCommand": true,
"postStartCommand": "cp --update /opt/build/poetry/poetry.lock /workspaces/${localWorkspaceFolderBasename}/ && mkdir -p /workspaces/${localWorkspaceFolderBasename}/.git/hooks/ && cp --update /opt/build/git/* /workspaces/${localWorkspaceFolderBasename}/.git/hooks/",
"customizations": {
"vscode": {
"extensions": [
"charliermarsh.ruff",
"ms-python.mypy-type-checker",
"ms-python.python",
"ryanluker.vscode-coverage-gutters",
"tamasfe.even-better-toml",
"visualstudioexptteam.vscodeintellicode"
],
"settings": {
"coverage-gutters.coverageFileNames": [
"reports/coverage.xml"
],
"editor.codeActionsOnSave": {
"source.fixAll": true,
"source.organizeImports": true
},
"editor.formatOnSave": true,
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff"
},
"[toml]": {
"editor.formatOnSave": false
},
"editor.rulers": [
100
],
"files.autoSave": "onFocusChange",
"mypy-type-checker.importStrategy": "fromEnvironment",
"python.defaultInterpreterPath": "/opt/querytyper-env/bin/python",
"python.terminal.activateEnvironment": false,
"python.testing.pytestEnabled": true,
"ruff.importStrategy": "fromEnvironment",
"terminal.integrated.defaultProfile.linux": "zsh",
"terminal.integrated.profiles.linux": {
"zsh": {
"path": "/usr/bin/zsh"
}
}
}
}
}
}
5 changes: 5 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Caches
.*_cache/

# Git
.git/
27 changes: 27 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Publish

on:
release:
types:
- created

jobs:
publish:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.8"

- name: Install Poetry
run: pip install --no-input poetry

- name: Publish package
run: |
poetry config pypi-token.pypi "${{ secrets.POETRY_PYPI_TOKEN_PYPI }}"
poetry publish --build
47 changes: 47 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Test

on:
push:
branches:
- main
- master
pull_request:

jobs:
test:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
python-version: ["3.8"]

name: Python ${{ matrix.python-version }}

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 21

- name: Install @devcontainers/cli
run: npm install --location=global @devcontainers/[email protected]

- name: Start Dev Container
run: |
git config --global init.defaultBranch main
PYTHON_VERSION=${{ matrix.python-version }} devcontainer up --workspace-folder .
- name: Lint package
run: devcontainer exec --workspace-folder . poe lint

- name: Test package
run: devcontainer exec --workspace-folder . poe test

- name: Upload coverage
uses: codecov/codecov-action@v3
with:
files: reports/coverage.xml
64 changes: 64 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Coverage.py
htmlcov/
reports/

# cruft
*.rej

# Data
*.csv*
*.dat*
*.pickle*
*.xls*
*.zip*
data/

# direnv
.envrc

# dotenv
.env

# Hypothesis
.hypothesis/

# Jupyter
*.ipynb
.ipynb_checkpoints/
notebooks/

# macOS
.DS_Store

# mypy
.dmypy.json
.mypy_cache/

# Node.js
node_modules/

# Poetry
.venv/
dist/

# PyCharm
.idea/

# pyenv
.python-version

# pytest
.pytest_cache/

# Python
__pycache__/
*.py[cdo]

# Ruff
.ruff_cache/

# Terraform
.terraform/

# VS Code
.vscode/
77 changes: 77 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# https://pre-commit.com
default_install_hook_types: [commit-msg, pre-commit]
default_stages: [commit, manual]
fail_fast: true
repos:
- repo: meta
hooks:
- id: check-useless-excludes
- repo: https://github.com/pre-commit/pygrep-hooks
rev: v1.10.0
hooks:
- id: python-check-mock-methods
- id: python-use-type-annotations
- id: rst-backticks
- id: rst-directive-colons
- id: rst-inline-touching-normal
- id: text-unicode-replacement-char
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
hooks:
- id: check-added-large-files
- id: check-ast
- id: check-builtin-literals
- id: check-case-conflict
- id: check-docstring-first
- id: check-json
- id: check-merge-conflict
- id: check-shebang-scripts-are-executable
- id: check-symlinks
- id: check-toml
- id: check-vcs-permalinks
- id: check-xml
- id: check-yaml
- id: debug-statements
- id: destroyed-symlinks
- id: detect-private-key
- id: end-of-file-fixer
types: [python]
- id: fix-byte-order-marker
- id: mixed-line-ending
- id: name-tests-test
args: [--pytest-test-first]
- id: trailing-whitespace
types: [python]
- repo: local
hooks:
- id: commitizen
name: commitizen
entry: cz check
args: [--commit-msg-file]
require_serial: true
language: system
stages: [commit-msg]
- id: ruff-check
name: ruff check
entry: ruff check
args: ["--force-exclude", "--extend-fixable=F401,F841", "--fix-only"]
require_serial: true
language: system
types_or: [python, pyi]
- id: ruff-format
name: ruff format
entry: ruff format
args: [--force-exclude]
require_serial: true
language: system
types_or: [python, pyi]
- id: poetry-check
name: poetry check
entry: poetry check
language: system
pass_filenames: false
- id: mypy
name: mypy
entry: mypy
language: system
types: [python]
Loading

0 comments on commit b10adc9

Please sign in to comment.