Skip to content

Latest commit

 

History

History
125 lines (84 loc) · 2.88 KB

README.md

File metadata and controls

125 lines (84 loc) · 2.88 KB

PyNoco

PyPI

A Python client for NocoDB, The Open Source Airtable Alternative. This library provides an easy-to-use interface for interacting with NocoDB's API, allowing you to manage your databases, tables, and records seamlessly.

Features

  • Connect to NocoDB and perform CRUD operations on bases.
  • Fetch, create, update, and delete records with simple method calls.
  • Support for custom queries and filters.

Installation

To install the SDK, use pip:

pip install pynoco

Getting Started

  1. Initialize the Client

To get started, you'll need to initialize the Client with your API access token. If you're using a different server, you can also specify a custom base URL.

from pynoco.client import Client

# Custom NocoDB Server
base_url = 'https://app.nocodb.com'
client = Client("YOUR_TOKEN", base_url)
  1. Creating a Source

You can connect to various sources, such as MySQL, by configuring your source data. Use the Source object to define the connection details for your data source.

from pynoco.source import Source

mysql_source = Source(
    id='my_unique_id',
    base_id='base_id',
    type='mysql',
    inflection_column='camelize',
    inflection_table='camelize',
    order=2,
    config='YOUR_DATABASE_CONFIG'
)
  1. Creating a Base

You can create a base and associate it with a source.

# Create a base with a source
base = client.bases.create('base_name', sources=[mysql_source])

You can also add a source to an existing base:

# Create a base without a source
base2 = client.bases.create('base_name')

# Add a source to the base
base2.add_source(mysql_source)

Managing Bases

You can create a base.

base = client.bases.create(base_name='base_name', sources=[mysql_source])

To update a base, specify the new name, color, and order.

base.update(
    title='new_name',
    order=4,
    color='#24716E'
)

List Bases

You can list all the bases you’ve created.

print(client.bases.list())

Get a Base by ID

You can fetch details of a base by its id.

base = client.bases.get('p#######')

Remove a Base

To delete a base, use the following command:

client.bases.drop('p#######')

🙋‍♀️ Contributing and developing

Contributions are welcome! If you have suggestions or improvements, please create a pull request or open an issue.

Check out the contributing guide to set up your development environment and start building.

License

This project is licensed under the MIT License. See the LICENSE file for more details.