-
Notifications
You must be signed in to change notification settings - Fork 0
Feature 20251012 #10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature 20251012 #10
Changes from all commits
5ec3b00
aeb68df
c362d36
43ce8cd
582ab43
43608fa
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -48,11 +48,76 @@ jobs: | |||||||||||||||||||||||||||||
| env: | ||||||||||||||||||||||||||||||
| PYTHONPATH: ${{ github.workspace }}/src | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| # 📦 Validate optional dependencies installation | ||||||||||||||||||||||||||||||
| validate-extras: | ||||||||||||||||||||||||||||||
| name: 📦 Validate Optional Dependencies | ||||||||||||||||||||||||||||||
| runs-on: ubuntu-latest | ||||||||||||||||||||||||||||||
| needs: unit-tests | ||||||||||||||||||||||||||||||
| strategy: | ||||||||||||||||||||||||||||||
| matrix: | ||||||||||||||||||||||||||||||
| python-version: ["3.11", "3.12", "3.13"] | ||||||||||||||||||||||||||||||
| extra: ["cli", "async", "config", "dotenv", "dev"] | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| steps: | ||||||||||||||||||||||||||||||
| - name: 📥 Checkout code | ||||||||||||||||||||||||||||||
| uses: actions/checkout@v4 | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| - name: 🐍 Set up Python ${{ matrix.python-version }} | ||||||||||||||||||||||||||||||
| uses: actions/setup-python@v4 | ||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||
| python-version: ${{ matrix.python-version }} | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| - name: 📦 Install base package | ||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||
| python -m pip install --upgrade pip | ||||||||||||||||||||||||||||||
| pip install -e . | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| - name: 📦 Install optional extra [${{ matrix.extra }}] | ||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||
| pip install -e ".[${{ matrix.extra }}]" | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| - name: ✅ Verify installation | ||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||
| echo "=== Installed packages ===" | ||||||||||||||||||||||||||||||
| pip list | grep -E "(nocodb|click|rich|aiohttp|aiofiles|pyyaml|tomli|python-dotenv)" || true | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
| pip list | grep -E "(nocodb|click|rich|aiohttp|aiofiles|pyyaml|tomli|python-dotenv)" || true | |
| pip list | grep -Ei "(nocodb|click|rich|aiohttp|aiofiles|pyyaml|tomli|python-dotenv)" || true |
Copilot
AI
Jan 28, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Python-version check for selecting tomli vs tomllib is hard-coded to 3.11–3.13; if a newer Python (e.g., 3.14) is added to the matrix later, this condition will incorrectly try to import tomli even though it won’t be installed for >=3.11. Prefer checking the version boundary directly (e.g., python -c based on sys.version_info, or try-import tomllib and fall back to tomli).
| if [ "${{ matrix.python-version }}" != "3.11" ] && [ "${{ matrix.python-version }}" != "3.12" ] && [ "${{ matrix.python-version }}" != "3.13" ]; then | |
| python -c "import tomli; print('✓ tomli available')" | |
| else | |
| python -c "import tomllib; print('✓ tomllib available (stdlib)')" | |
| fi | |
| python - << 'PY' | |
| import importlib | |
| try: | |
| tomllib = importlib.import_module("tomllib") | |
| print("✓ tomllib available (stdlib)") | |
| except ModuleNotFoundError: | |
| importlib.import_module("tomli") | |
| print("✓ tomli available") | |
| PY |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -46,6 +46,8 @@ A simple and powerful Python client for interacting with [NocoDB](https://nocodb | |||||
|
|
||||||
| ### Installation | ||||||
|
|
||||||
| #### Basic Installation | ||||||
|
|
||||||
| Install from PyPI using pip: | ||||||
|
|
||||||
| ```bash | ||||||
|
|
@@ -65,6 +67,39 @@ pip install git+{{REPO_URL}}.git@v{{VERSION}} | |||||
| pip install git+{{REPO_URL}}.git@main | ||||||
| ``` | ||||||
|
|
||||||
| #### Optional Features | ||||||
|
|
||||||
| Install with optional features based on your needs: | ||||||
|
|
||||||
| ```bash | ||||||
| # Command-line interface support | ||||||
| pip install "nocodb-simple-client[cli]" | ||||||
|
|
||||||
| # Async client support | ||||||
| pip install "nocodb-simple-client[async]" | ||||||
|
|
||||||
| # Configuration file support (YAML/TOML) | ||||||
| pip install "nocodb-simple-client[config]" | ||||||
|
|
||||||
| # .env file support | ||||||
| pip install "nocodb-simple-client[dotenv]" | ||||||
|
|
||||||
| # Multiple features | ||||||
| pip install "nocodb-simple-client[cli,async,config]" | ||||||
|
|
||||||
| # All features for development | ||||||
|
||||||
| # All features for development | |
| # All development dependencies (testing, linting, etc.) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The extras validation matrix only runs on Python 3.11–3.13. Since the
configextra includestomlionly for Python < 3.11, this job currently never validates the pre-3.11 path (nor thetomlimarker/install). Consider adding at least one <3.11 version (e.g., 3.10) to the matrix if the project still supports Python 3.8–3.10.