semvec/pypi-packages huggingface dataset:
navdict 0.6.3
A navigable dictionary with dot notation access and automatic file loading
Requires Python: >=3.10

# NavigableDict (aka. navdict)

A Python dictionary that supports both traditional key access (`dict["key"]`)
and convenient dot notation (`dict.key`) for navigating nested data 
structures, plus some extras.

## Features

- **Dot Notation Access**: Access nested dictionaries with `data.user.name` instead of `data["user"]["name"]`
- **Backward Compatible**: Works exactly like a regular dictionary for all standard operations
- **Nested Structure Support**: Automatically converts nested dictionaries to navdict objects
- **Safe Attribute Access**: Handles keys that conflict with dictionary methods gracefully
- **Type Hints**: Full typing support for better IDE integration
- **Lightweight**: Minimal overhead over standard dictionaries

and 

- **Automatic File Loading**: Seamlessly load and parse data files (CSV, YAML, JSON, etc.) when accessing dictionary keys, eliminating manual file handling
- **Dynamic Class Instantiation**: Automatically import and instantiate classes with configurable parameters, enabling flexible object creation from configuration data


## Installation

Always install packages into a virtual environment which you can create with
```shell
python3 -m venv .venv
```
or when you are already using `uv`:
```shell
uv venv --python 3.12
```

Then install the package in that environment:

```bash
source .venv/bin/activate
pip install navdict
```

or with `uv`, simply run the following, since `uv` will automatically use 
the environment.

```shell
uv pip install navdict
```

### Installation in a project

When you want to use `navdict` in a project you are developing, add the 
dependency to your `pyproject.toml` manually, or using `uv`

```shell
uv add navdict
```
thaidate 0.3.0
python-thaidate
Keywords: python thaidate python-thaidate

# Project Thaidate 

## Status : - alpha

## Installation
```
    pip install thaidate
```
## Usage

```
from thaidate import thaidate
from datetime import date

'''
    thaidate(date(ปี, เดือน, วัน), True/False)
    ex1: 
        ใช้เมื่อปี คือ พ.ศ. เช่น วันที่ 1 เดือนกุมภาพันธ์ ปี พ.ศ. 5
        x = thaidate(date(5, 2, 1), True) 
        
    ex2: 
        ใช้เมื่อปี คือ ค.ศ. เช่น วันที่ 1 เดือนกุมภาพันธ์ ปี ค.ศ. 5
        x = thaidate(date(5, 2, 1), False) 
        หรือ
        x = thaidate(date(5, 2, 1))
        
    ex3:
        สำหรับแสดงวันที่ปัจจุบัน
        x = thaidate()   
        
'''

x = thaidate()
print(x.day)                # x.day แสดงวันที่ เช่น วันที่ 1
print(x.full_month)         # x.full_month แสดงเดือนแบบเต็ม เช่น มกราคม
print(x.short_month)        # x.short_month แสดงเดือนแบบย่อ เช่น ม.ค.
print(x.year)               # x.year แสดงปี พ.ศ.
print(x.weekday)            # x.weekday แสดงวันในสัปดาห์ เช่น วันอาทิตย์

print(x.date)               # x.date แสดงวันที่ เดือน ปีพุทธศักราช เช่น 5 พฤศจิกายน 2536
print(x.short_date)         # x.date แสดงวันที่ เดือน ปีพุทธศักราช เช่น 5 พ.ย. 2536

print(x.full_date)          # x.full_date  แสดงวัน เดือน ปี ในรูปแบบเต็ม 
วัน.......ที่ ..... เดือน...... ปีพุทธศักราช ...... 

print(x.rattanakosin_era)   # x.rattanakosin_era  แสดงปี ร.ศ.


#####################################################################
y = thaidatetime()          # ใช้คำสั่งนี้ สำหรับการแสดงวันเดือนปี ชั่วโมงนาทีวินาที
print(y.hour)               # แสดงชั่วโมง
print(y.minute)             # แสดงนาที
print(y.fulltime)           # แสดงเวลา ในรูปแบบ 'เวลา ... นาฬิกา ... นาที ... วินาที'
print(y.datetime)           # แสดงวันและเวลา ในรูปแบบ '5 พฤศจิกายน 2536 เวลา ... นาฬิกา ... นาที ... วินาที'
print(y.fulldatetime)       # แสดงวันและเวลา ในรูปแบบ 'วัน.......ที่ ..... เดือน...... ปีพุทธศักราช ......  เวลา ... นาฬิกา ... นาที ... วินาที'
print(y.short_datetime)       # แสดงวันและเวลา ในรูปแบบ 'วันที่ เดือน(ตัวย่อ) ปี  เวลา ... นาฬิกา ... นาที ... วินาที'

```

## Changelog
```
0.3.0
- แก้ไข bug ของ class thaidatetime()

0.2.5
- เพิ่มประสิทธิภาพการใช้แรม

0.2.2
- เพิ่ม การแสดงวันและเวลา โดยใช้คำสั่ง x = thaidatetime() [ถ้าหากต้องการแสดงแค่รูปแบบวัน ไม่รวมเวลา ให้ใช้คำสั่ง x = thaidate() ตามเดิม]


0.1.5
- แก้ไข bug แสดงผลไม่ถูกต้อง


ตั้งแต่เวอร์ชัน 0.1.0 ลงไป มีบัคการแสดงผลไม่ถูกต้อง ควรใช้ เวอร์ชัน 0.1.5 ขึ้นไป

0.1.0  
- เปลี่ยนวิธีการแสดงผลวัน วันที่ เดือน ปี ในรูปแบบเต็ม จากเดิมต้องเรียกในรูปแบบเมธอด [x.full_date()] เป็น [x.full_date] ได้เลย
- เพิ่มแอททริบิวต์สำหรับแสดงวันที่ เดือน ปี 
       [x.date] =>  [x.day] [x.full_month] [x.year]
       [x.short_date] =>  [x.day] [x.short_month] [x.year]

0.0.1b
- เพิ่มแอททริบิวต์สำหรับแสดง วันในสัปดาห์ [x.weekday] วันที่ [x.day] เดือน [x.full_month] [x.short_month] ปี [x.year]
- เพิ่มแอททริบิวต์สำหรับปี ร.ศ. [x.rattanakosin_era]
- เพิ่มเมธอด สำหรับแสดงวัน วันที่ เดือน ปี ในรูปแบบเต็ม [x.full_date()]
        [x.full_date()] => วัน [x.weekday] ที่ [x.day] เดือน [x.month] ปีพุทธศักราช [x.year]

```
ny-lektion 1.0.0
A simple CLI tool to scaffold new lektion projects
Requires Python: >=3.7

# ny_lektion

A simple CLI tool that creates a standard Python project structure for lessons or homework assignments.

## Installation

```bash
pip install ny_lektion
```

## Usage

```bash
ny_lektion           # Creates a new project named lektion_1, lektion_2, etc.
ny_lektion myapp     # Creates a project named 'myapp'
```

## Features

* Auto-generates folder structure with `application`, `tests`, and `docs`
* Adds `.gitignore` automatically
* Prints setup instructions for creating a virtual environment

## License

MIT License Â© 2025 Sam Parsakian

```

```
rdfc_proto 1.0.0
Python protobuf bindings for RDF-Connect
Requires Python: >=3.12

# Python protobuf bindings for RDF-Connect

## Development

The [Packaging Python Projects](https://packaging.python.org/en/latest/tutorials/packaging-projects/) guide was used to set up this project.
As build backend, the default [Hatchling](https://hatch.pypa.io/latest/) is used, for which the `pyproject.toml` file is configured.
That file tells build frontend tools like [pip](https://pip.pypa.io/en/stable/) which backend to use.
This project uses [uv](https://docs.astral.sh/uv/) as package manager.

First, make sure you have [Hatch installed](https://hatch.pypa.io/latest/install/):

```shell
pip install hatch
# OR
brew install hatch
# OR another method of your choice
```

Then, create a virtual environment and spawn a shell. This will automatically install the project dependencies defined in `pyproject.toml`:

```shell
hatch env create
hatch shell
```

Next, generate the gRPC interfaces and code for Python from the proto files by running the following command:

```shell
hatch run proto
```

Next to generating the code, this command also fixes the import statements in the generated files to ensure they are relative imports.
This is necessary because the generated code is placed in a subdirectory (`src/rdfc_proto/generated`) and the imports need to be adjusted accordingly.
The `fix_proto_imports.py` script is responsible for this adjustment.

All the generated code will be placed in the `src/rdfc_proto/generated` directory, which is where the Python package expects to find the generated files.
You can safely delete the `src/rdfc_proto/generated` directory and re-run the command to regenerate the code if needed.

You can build the project with:

```shell
hatch build
```

Lastly, you can publish the package to PyPI with:

```shell
hatch publish
```
djangocms-deleted-pages 1.0.1
Copy the page to the trash before deleting it.
Requires Python: >=3.9

# DjangoCMS Deleted Pages

This module is designed for the [Django CMS](https://www.django-cms.org/) content management system.
Since CMS 4, the content of pages that users publish has been versioned. This makes it possible to revert changes that users have made.
Unfortunately, this does not apply to deleted pages. Once a page is deleted, all content, including all its versions, is irretrievably gone.
That is why there is this module that creates a copy of the page before deleting it and places it under the Trash page.
This way, it is possible to restore a page that was deleted by mistake.

A page representing the trash can for deleted pages is created automatically when a page is deleted.
The trash can page has a special `slug`, which has the default value `deleted-pages`. This slug can be redefined in settings in the constant `DELETED_PAGES_SLUG`.
It is also possible to redefine the slug in [Constance](https://django-constance.readthedocs.io/), if you have it installed. The name `DELETED_PAGES_SLUG` is also used there.
By redefining the slug, it is possible to store deleted pages in a different page than the current one.

![Pages list](https://gitlab.nic.cz/djangocms-apps/djangocms-deleted-pages/-/raw/main/snapshosts/deleted-pages-are-duplicated-into-trash.gif "Pages list")

## Install

Install the package from pypi.org.

```
pip install djangocms-deleted-pages
```

Add into `INSTALLED_APPS` in your site `settings.py`:

```python
INSTALLED_APPS = [
    ...
    "djangocms_deleted_pages",
]
```

### Extra settings

This value can be defined in both settings and Constance. Constance always takes precedence.

 - `DELETED_PAGES_SLUG` - Slug for Trash bin page. Default is `deleted-pages`.


## License

BSD-3-Clause
orrery 0.1.1
A framework for supporting MVC and observer patterns in Python
Requires Python: >=3.9

# Orrery

[![PyPI - Version](https://img.shields.io/pypi/v/orrery)](https://pypi.org/project/orrery/)
[![License](https://img.shields.io/github/license/CodeChoreography/orrery)](https://github.com/CodeChoreography/orrery/blob/main/LICENSE)
[![Test](https://github.com/CodeChoreography/orrery/actions/workflows/test.yml/badge.svg)](https://github.com/CodeChoreography/orrery/actions/workflows/test.yml)
[![lint](https://github.com/CodeChoreography/orrery/actions/workflows/lint.yml/badge.svg)](https://github.com/CodeChoreography/orrery/actions/workflows/lint.yml)
[![Publish](https://github.com/CodeChoreography/orrery/actions/workflows/publish.yml/badge.svg)](https://github.com/CodeChoreography/orrery/actions/workflows/publish.yml)
[![Docs](https://github.com/CodeChoreography/orrery/actions/workflows/docs.yml/badge.svg)](https://github.com/CodeChoreography/orrery/actions/workflows/docs.yml)

A framework for supporting MVC and observer patterns in Python

## Install
```console
pip install orrery
```

## Update
```console
pip install --update orrery
```

## Documentation

- [Tutorial](https://codechoreography.github.io/orrery/tutorial.html)
- [API reference](https://codechoreography.github.io/orrery/_autosummary/orrery.html)
- [Documentation homepage](https://CodeChoreography.github.io/orrery)

## Quick start

See the [Tutorial](https://codechoreography.github.io/orrery/tutorial.html) page for more information 

Create a model containing an initial value
```python
from orrery.models import ValueModel
my_model = ValueModel(value=5)
```

Read or set the model value
```python
my_model.value = 6
print(my_model.value)
```

Constant model:
```python
from orrery.models import ConstantModel
my_model = ConstantModel(value=5)
```

Model containing a class (i.e. store without copying)

```python
from orrery.models import ClassModel
my_object = MyClass()
my_model = ClassModel(my_object)
```

Check if a model has been given a value:
```python
print(my_model.has_value())
```

Observe changes to a model:
```python
class CallbackClass:
    def value_changed(self, model):
        print(f"New value: {model.value}")

callback_class = CallbackClass()
my_model.add_value_changed_listener(callback_class.value_changed)
```

Create a model which depends on other models:
```python
from orrery.models import DependentModel, ValueModel

model_a = ValueModel(value=2)
model_b = ValueModel(value=3)
sum_model = DependentModel(
    dependencies=dict(model_a=model_a, model_b=model_b), 
    get_result=lambda dependencies: dependencies["model_a"].value + dependencies["model_b"].value
)
print(sum_model.value)
```

## Source code
- [GitHub](https://github.com/CodeChoreography/orrery)

## License

See [license file](https://github.com/CodeChoreography/orrery/blob/main/LICENSE)

## Copyright

&copy; 2025 Code Choreography Limited