Skip to content

Commit 62c4c42

Browse files
committed
docs: enhance README with comprehensive documentation and visual elements
This commit significantly improves the python-nocodb README file with: - Added visual elements (badges, icons, tables, diagrams) - Documented all client features including bulk insert functionality - Added table of contents for better navigation - Created feature overview tables and architecture diagram - Updated contributor information with GitHub profile links - Added clear documentation for table operations and column management - Documented project users management and view filters - Clarified that this is a fork with extended functionality - Fixed formatting issues throughout the document The README now provides a complete, visual and intuitive guide to all features available in this fork of the python-nocodb library.
1 parent 858e7c4 commit 62c4c42

File tree

1 file changed

+211
-9
lines changed

1 file changed

+211
-9
lines changed

README.md

Lines changed: 211 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,58 @@
1-
# NocoDB Python Client
1+
<div align="center">
2+
3+
# 🚀 NocoDB Python Client
4+
5+
[![PyPI version](https://img.shields.io/badge/pypi-v0.4.0-blue.svg)](https://pypi.org/project/nocodb/)
6+
[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
7+
[![Python Versions](https://img.shields.io/badge/python-3.6%20%7C%203.7%20%7C%203.8%20%7C%203.9%20%7C%203.10-blue)](https://pypi.org/project/nocodb/)
8+
9+
**Note: This is a fork of [python-nocodb](https://github.com/elchicodepython/python-nocodb) with extended functionality.**
10+
11+
<img src="https://www.nocodb.com/brand/nocodb-banner.png" alt="NocoDB Banner" width="600"/>
212

313
NocoDB is a great Airtable alternative. This client allows python developers
414
to use NocoDB API in a simple way.
515

6-
- [Contributors guidelines](contributors.md)
16+
</div>
717

8-
## Installation
18+
## 📌 Table of Contents
19+
20+
- [Installation](#installation)
21+
- [Usage](#usage)
22+
- [Client Configuration](#client-configuration)
23+
- [Project Creation](#project-creation)
24+
- [Table Row Operations](#table-row-operations)
25+
- [Table Operations](#table-operations)
26+
- [Table Column Operations](#table-column-operations)
27+
- [View Filter Operations](#view-filter-operations)
28+
- [Project Users Management](#project-users-management)
29+
- [Available Filters](#available-filters)
30+
- [Custom Filters](#custom-filters)
31+
- [Version Information](#version-information)
32+
- [Contributors](#contributors)
33+
34+
- [Contributors Guidelines](contributors.md)
35+
36+
## 📥 Installation
937

1038
```bash
1139
pip install nocodb
1240
```
1341

14-
## Usage
42+
<details>
43+
<summary>Development Installation</summary>
44+
45+
```bash
46+
git clone https://github.com/santoshray02/python-nocodb.git
47+
cd python-nocodb
48+
pip install -e .
49+
```
50+
51+
</details>
52+
53+
## 🔧 Usage
1554

16-
### Client configuration
55+
### 🔑 Client configuration
1756
```python
1857
from nocodb.nocodb import NocoDBProject, APIToken, JWTAuthToken
1958
from nocodb.filters import LikeFilter, EqFilter, And
@@ -37,7 +76,7 @@ client = NocoDBRequestsClient(
3776
)
3877
```
3978

40-
### Project creation
79+
### 📊 Project creation
4180
```python
4281
# Example with default database
4382
project_body = {"title": "My new project"}
@@ -154,7 +193,107 @@ client.table_row_bulk_insert(project, table_name, rows_to_insert)
154193
client.table_row_delete(project, table_name, row_id)
155194
```
156195

157-
### Available filters
196+
### 📋 Table Operations
197+
198+
```python
199+
# List all tables in a project
200+
tables = client.table_list(project)
201+
202+
# Read table metadata
203+
table_id = "table_id_from_table_list"
204+
table_metadata = client.table_read(table_id)
205+
206+
# Get detailed table info
207+
table_info = client.table_info(table_id)
208+
209+
# Create a new table
210+
table_body = {
211+
"table_name": "NewTableName",
212+
"columns": [
213+
{
214+
"title": "Title",
215+
"column_name": "title",
216+
"dt": "varchar"
217+
},
218+
{
219+
"title": "Description",
220+
"column_name": "description",
221+
"dt": "text"
222+
}
223+
]
224+
}
225+
client.table_create(project, table_body)
226+
227+
# Update a table
228+
table_update_body = {
229+
"table_name": "UpdatedTableName"
230+
}
231+
client.table_update(table_id, table_update_body)
232+
233+
# Reorder a table
234+
client.table_reorder(table_id, order=2)
235+
236+
# Delete a table
237+
client.table_delete(table_id)
238+
```
239+
240+
### 🔢 Table Column Operations
241+
242+
```python
243+
# Create a new column in a table
244+
column_body = {
245+
"title": "Rating",
246+
"column_name": "rating",
247+
"dt": "int"
248+
}
249+
client.table_column_create(table_id, column_body)
250+
251+
# Update a column
252+
column_id = "column_id_from_table_info"
253+
column_update_body = {
254+
"title": "Score"
255+
}
256+
client.table_column_update(column_id, column_update_body)
257+
258+
# Set a column as primary
259+
client.table_column_set_primary(column_id)
260+
261+
# Delete a column
262+
client.table_column_delete(column_id)
263+
```
264+
265+
### 🔍 View Filter Operations
266+
267+
```python
268+
# Create a filter for a view
269+
view_id = "view_id_from_view_list"
270+
filter_body = {
271+
"comparison_op": "eq",
272+
"value": "Active",
273+
"fk_column_id": column_id
274+
}
275+
client.view_filter_create(view_id, filter_body)
276+
```
277+
278+
### 👥 Project Users Management
279+
280+
```python
281+
# Get users for a project with pagination
282+
users_page = client.project_users_list(
283+
project,
284+
page=1,
285+
page_size=25,
286+
include_roles=True
287+
)
288+
289+
# Get all users for a project (automatically handles pagination)
290+
all_users = client.project_users_list_all(
291+
project,
292+
include_roles=True
293+
)
294+
```
295+
296+
### 🔎 Available filters
158297

159298
- EqFilter
160299
- EqualFilter (Alias of EqFilter)
@@ -247,13 +386,76 @@ it has what I needed: A full CRUD with some filters.
247386

248387
Feel free to add new capabilities by creating a new MR.
249388

250-
## Contributors
389+
## 📋 Version Information
251390

252-
![Contributors image](https://contrib.rocks/image?repo=elchicodepython/python-nocodb)
391+
<div align="center">
392+
393+
### ✨ Features Overview
394+
395+
| Feature Category | Capabilities |
396+
|-----------------|-------------|
397+
| 📝 **Row Operations** | Create, Read, Update, Delete, Bulk Insert |
398+
| 📊 **Table Management** | Create, List, Read, Update, Delete, Reorder |
399+
| 🔢 **Column Management** | Create, Update, Delete, Set Primary |
400+
| 👥 **User Management** | List with pagination, List all users |
401+
| 🔍 **Filtering** | Multiple filter types, Custom filters, Combined conditions |
402+
| 🔎 **Query Options** | Sorting, Pagination, Field selection |
403+
404+
</div>
405+
406+
<div align="center">
407+
408+
### 📈 Key Benefits
409+
410+
<table>
411+
<tr>
412+
<td align="center"><b>🚀 Efficient</b><br>Bulk operations support</td>
413+
<td align="center"><b>🛠️ Complete</b><br>Full CRUD functionality</td>
414+
<td align="center"><b>🔍 Flexible</b><br>Advanced filtering</td>
415+
</tr>
416+
<tr>
417+
<td align="center"><b>🧩 Extensible</b><br>Custom filter support</td>
418+
<td align="center"><b>👥 Collaborative</b><br>User management</td>
419+
<td align="center"><b>📊 Powerful</b><br>Table & column operations</td>
420+
</tr>
421+
</table>
422+
423+
</div>
253424

425+
<div align="center">
254426

427+
### 🏗️ Architecture
428+
429+
```mermaid
430+
graph TD
431+
A[Client Application] -->|uses| B(NocoDBClient)
432+
B -->|implements| C[NocoDBRequestsClient]
433+
C -->|uses| D[NocoDBAPI]
434+
D -->|constructs| E[API URIs]
435+
C -->|sends| F[HTTP Requests]
436+
F -->|to| G[NocoDB Server]
437+
```
438+
439+
</div>
440+
441+
## 👨‍💻 Contributors
442+
443+
![Contributors image](https://contrib.rocks/image?repo=elchicodepython/python-nocodb)
444+
445+
### Original Authors
255446
- Samuel López Saura @elchicodepython
256447
- Ilya Sapunov @davert0
257448
- Delena Malan @delenamalan
258449
- Jan Scheiper @jangxx
259450

451+
### Fork Maintainer
452+
- Santosh Ray - VP of Technology [@santoshray02](https://github.com/santoshray02)
453+
- Added bulk insert functionality
454+
- Refactored project identification to use project_id instead of project_name in API endpoints
455+
- Implemented and fixed project users listing functionality
456+
- Added user API endpoints
457+
- Created view filter implementation
458+
- Added table_info function to retrieve table metadata
459+
- Fixed UnicodeDecodeError by specifying UTF-8 encoding when reading README.md
460+
- Enhanced documentation for all features
461+

0 commit comments

Comments
 (0)