Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
seanchatmangpt committed Dec 24, 2024
0 parents commit d7798f1
Show file tree
Hide file tree
Showing 36 changed files with 11,344 additions and 0 deletions.
29 changes: 29 additions & 0 deletions .cruft.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"template": "https://github.com/superlinear-ai/poetry-cookiecutter",
"commit": "0b4edb2d3ea619bfc3b2ffd440e2e95ca997f0f2",
"checkout": null,
"context": {
"cookiecutter": {
"project_type": "package",
"project_name": "pyn8n",
"project_description": "N8N client and AI tools.",
"project_url": "https://github.com/user/seanchatmangpt/pyn8n",
"author_name": "Sean Chatman",
"author_email": "info@chatmangpt.com",
"python_version": "3.12",
"development_environment": "simple",
"with_conventional_commits": "0",
"with_fastapi_api": "1",
"with_typer_cli": "1",
"continuous_integration": "GitHub",
"private_package_repository_name": "",
"private_package_repository_url": "",
"__docker_image": "python:$PYTHON_VERSION-slim",
"__docstring_style": "NumPy",
"__project_name_kebab_case": "pyn8n",
"__project_name_snake_case": "pyn8n",
"_template": "https://github.com/superlinear-ai/poetry-cookiecutter"
}
},
"directory": null
}
66 changes: 66 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
{
"name": "pyn8n",
"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",
"GitHub.copilot",
"GitHub.copilot-chat",
"GitHub.vscode-github-actions",
"GitHub.vscode-pull-request-github",
"ms-azuretools.vscode-docker",
"ms-python.mypy-type-checker",
"ms-python.python",
"ms-toolsai.jupyter",
"ryanluker.vscode-coverage-gutters",
"tamasfe.even-better-toml",
"visualstudioexptteam.vscodeintellicode"
],
"settings": {
"coverage-gutters.coverageFileNames": [
"reports/coverage.xml"
],
"editor.codeActionsOnSave": {
"source.fixAll": "explicit",
"source.organizeImports": "explicit"
},
"editor.formatOnSave": true,
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff"
},
"[toml]": {
"editor.formatOnSave": false
},
"editor.rulers": [
100
],
"files.autoSave": "onFocusChange",
"github.copilot.chat.edits.enabled": true,
"jupyter.kernels.excludePythonEnvironments": ["/usr/local/bin/python"],
"mypy-type-checker.importStrategy": "fromEnvironment",
"mypy-type-checker.preferDaemon": true,
"notebook.codeActionsOnSave": {
"notebook.source.fixAll": "explicit",
"notebook.source.organizeImports": "explicit"
},
"notebook.formatOnSave.enabled": true,
"python.defaultInterpreterPath": "/opt/pyn8n-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/
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Auto detect text files and perform LF normalization
* text=auto
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@v5
with:
python-version: "3.12"

- 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.12"]

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: 23

- name: Install @devcontainers/cli
run: npm install --location=global @devcontainers/cli@0.72.0

- 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@v5
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/
70 changes: 70 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# https://pre-commit.com
default_install_hook_types: [commit-msg, pre-commit]
default_stages: [pre-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: 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 d7798f1

Please sign in to comment.