semvec/pypi-packages huggingface dataset:
wagtailmenupage 1.1.1
A Wagtail page model for creating menu pages.
Requires Python: >=3.9
Keywords: wagtail, menu, page, pages

# wagtailmenupage: Add custom menu items and external links with Wagtail's native menu systme.

- [GitHub Repo](https://github.com/jmwhitworth/wagtailmenupage)
- [PyPI Package](https://pypi.org/project/wagtailmenupage/)

## Installation

Install the package:

```bash
# With pip
pip install wagtailmenupage

# Or Poetry
poetry add wagtailmenupage
```
(Or your prefered package manager)

Run migrations:
```bash
# Standard Python
python ./manage.py migrate

# If using Poetry
poetry run python ./manage.py migrate
```

Add to your `INSTALLED_APPS`:
```python
INSTALLED_APPS = [
    ...
    "wagtailmenupage",
    ...
]
```

## Usage

### Creating a page

You can add a new Page type for menu items:

![Demo screenshot 1](https://media.jackwhitworth.com/uploads/2025/05/wagtailmenupage-add-page.webp)


The 'Page' itself is very stripped down. It supports only 3 fields:

![Demo screenshot 2](https://media.jackwhitworth.com/uploads/2025/05/wagtailmenupage-set-page.webp)

### Setting up the template

You can then build a menu using Wagail's built-in system, but these page items will show the correct label and URL:

```django
{% load wagtailcore_tags menupage_tags  %}
{% get_site_root as site_root %}

<nav role="navigation" aria-label="Main navigation">
    <ul>
        {% for menu_item in site_root.get_children.live.in_menu.specific %}
            <li>
                <a
                    href="{% pageurl menu_item %}"
                    {% if request.path == menu_item.url %}aria-current="page"{% endif %}
                    {% if menu_item.open_in_new_tab %}target="_blank" rel="noopener noreferrer"{% endif %}
                >{{ menu_item.title }}</a>
            </li>
        {% endfor %}
    </ul>
</nav>
```

The above example doesn't show multi-level menus, but that can be done in the regular Wagtail way.

Take note of the logic for opening in a new tab, which is specifically required for this package's open in new tab functionality to work.

You can then re-order your menu items like normal.

For more guidance on using Wagtail menus, please [refer to their documentation](https://docs.wagtail.org/en/stable/tutorial/set_up_site_menu.html)

## Notes

These pages are excluded from the site search, don't use previews, and are excluded from sitemaps generated by the wagtail-seo package.
maji-passport 1.0.10
Maji Passport With custom authorisation
Requires Python: >=3.9

# Maji Package
Library for client side passport functionality.
Adding new auth backend behaviour.
Working with passport tokens.
Adding new endpoints.

# Update library
https://pypi.org/project/maji-passport/

* Login to pypi via techoutlaw account.
* https://pypi.org/manage/account/ - API tokens. Generate new API to update library.
* Update the version of the library in 2 files (setup.py and pyproject.toml)
* Generate new binary files: ```python setup.py sdist bdist_wheel```
* Publish new binaries from dist folder: ```twine upload --repository pypi dist/*```
* Update requirements on Brandon\Argo\etc

# Installation
    1. Instal thru pip
    2. Add package maji_passport at LOCAL_APPS (django) https://pypi.org/project/maji-passport/
    3. Add settings for your apllication
        a. "maji_passport.apps.PassportConfig" into INSTALLED_APPS
        b. "maji_passport.authentication.backend.PassportAuthBackend" add into DEFAULT_AUTHENTICATION_CLASSES
        c. new envoronment variables ( Look it below )
        d. develop your own tasks or move existed to argo/passport/tasks.py
        e. overwrite 2 functions 
            * maji_passport.services.kafka.KafkaService = KafkaService
            * maji_passport.KafkaUpdateUserSerializer = KafkaUpdateUserSerializer

        f. add new routes:
            path("api/auth/", include("maji_passport.urls")),
        g. Put logic for auth backend env variable APPLICATION_AUTHENTICATION if it needs
        h. Put logic for user serializer env variable USER_DETAIL_SERIALIZER if it needs


# Env veriables
### PASSPORT SETTINGS
```
PASSPORT_ENABLE = env("PASSPORT_ENABLE", default=True)
PASSPORT_SERVICE_KEY = env("PASSPORT_SERVICE_KEY", default="")
PASSPORT_UPDATE_TOKEN_URL = env(
    "PASSPORT_UPDATE_TOKEN_URL",
    default="https://test.com/api/v1/internal_auth/auth/update_token/",
)

PASSPORT_START_MIGRATE = env("PASSPORT_START_MIGRATE", default="")
PASSPORT_SET_PASSWORD = env("PASSPORT_SET_PASSWORD", default="")
PASSPORT_LOGIN_URL = env(
    "PASSPORT_LOGIN_URL", default="https://test.com/auth/login"
)
PASSPORT_KAFKA_INTERNAL_SERVER_TOPIC = env(
    "PASSPORT_KAFKA_INTERNAL_SERVER_TOPIC", default="internalServerTopic"
)
PASSPORT_EXCHANGE_KEY = env("PASSPORT_EXCHANGE_KEY", default="")
PASSPORT_PUBLIC_KEY_PATH = env(
    "PASSPORT_PUBLIC_KEY_PATH", default="secrets/rsa_keys/public.pem"
)
APPLICATION_AUTHENTICATION = None
USER_DETAIL_SERIALIZER = None
```

### KAFKA
```
KAFKA_SASL_PASSWORD = env("KAFKA_SASL_PASSWORD", default="")
KAFKA_SASL_USERNAME = env("KAFKA_SASL_USERNAME", default="")
KAFKA_BOOTSTRAP_SERVER = env("KAFKA_BOOTSTRAP_SERVER", default="")
KAFKA_SECURITY_PROTOCOL = env("KAFKA_SECURITY_PROTOCOL", default="SASL_SSL")
KAFKA_SASL_MECHANISM = env("KAFKA_SASL_MECHANISM", default="PLAIN")
KAFKA_SESSION_TIMEOUT_MS = env("KAFKA_SESSION_TIMEOUT_MS", default=45000)
KAFKA_GROUP_ID = env("KAFKA_GROUP_ID", default="argo_test_passport_group")
```
aerosol-functions 0.1.13
Functions to analyze atmospheric aerosol data
Requires Python: >=3.9

# `aerosol-functions` package

This package is a collection of tools to analyze and visualize atmospheric aerosol and ion data.

Latest version: 0.1.13

## Installation

Install directly from GitHub using `pip`

```bash
pip install git+https://github.com/jlpl/aerosol-functions.git
```

Install from PYPI:

```bash
pip install aerosol-functions
```

## Documentation

The package's documentation page can be found [here](https://jlpl.github.io/aerosol-functions/)

## Example 

Calculate the coagulation coefficient in cubic meters per second for 10 nm and 100 nm aerosol particles under standard conditions.

```python
import aerosol.functions as af

K = af.coagulation_coef(10e-9,100e-9)

print(K) # output: 2.4e-14
```