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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy