semvec/pypi-packages huggingface dataset:
contextclass 0.5.0
A nice interface to context variables
Requires Python: >=3.12

# contextclass
Alternative interface to context variables for practical scenarios.

```pycon
>>> from contextclass import ContextLocal, enter, current
>>> from dataclasses import dataclass

>>> @dataclass
... class Foo(ContextLocal):
...     x: int | None = None

>>> @enter(Foo, x=1)
... def f() -> None:
...     print(current(Foo))
>>> f()
Foo(x=1)

>>> with Foo.context(x=2):
...     print(Foo.current.x)
2

>>> @Foo.context(x=3)
... def f() -> None:
...     print(Foo.current.x)
>>> f()
3

```

Works with type hints:

<img width="821" height="454" alt="image" src="https://github.com/user-attachments/assets/6c4f5b4b-48b5-4807-a6aa-bf9cd6b8e3e4" />
keino 1.0.3
Useful tools and utilities I use for scientific programming
Requires Python: <3.15,>=3.8

# keino

Useful tools and utilities I use for scientific programming.

# Installation

`pip install keino`, or clone this repo, cd into and `pip install .` to run the master version.

# Summary of utilities

* `Params`: Handy class for containing parameters.
* `RoundedPolygon`: Matplotlib patch object corresponding to a rectangle with rounded corners.
* `add_colourbar`: Create a matplotlib colourbar, with the orientation, scale, and position tunable.
* `build_axes_grid`: Create a grid of matplotlib axes, with the spacings, offsets, and aspect ratios tunable.
* `colours`: Various colourmaps and related utilities.
* `copy_artist`: Copy a matplotlib artist.
* `hash_dict`: Creates a unique hash for a dict
* `int_path`: Creates a list of indices between the given points.
* `kpath`: Discretises the Brillouin zone between certain momenta points.
* `ndindex`: Similar to numpy.ndindex, but allows also for specifying the lower as well as upper point of the iterators.
* `pprint`: Prints a matrix nicely in a Jupyter notebook.
* `vectorize_parallel`: Decorator which allows a function to take vector arguments, and also enables parallel processing with caching to disk.
* `versioned_import`: Allows for importing a library function, with a particular version enforced.

# Licences

rounded_polygon.py: CC BY-SA 4.0

vectorize_parallel.py: AGPL v2

All other code: GPL v3+
eopf 3.0.0rc1
Earth Observation Platform Core Python Modules
Requires Python: ~=3.13.0


.. image:: https://esamultimedia.esa.int/docs/corporate/ESA_logo_2020_Deep.png
   :width: 400
   :alt: [Image not found]


EOPF CPM: Earth Observation Platform framework for python developers
====================================================================

|pipeline|
|coverage|
|docstr-coverage|




Introduction
=============

The **EOPF Core Python Modules (EOPF-CPM)** is python package gathering the best-in-class open-source python modules in
a harmonized framework intended for the development of image processors. Particularly the re-engineering of the
operational Level-0, Level-1 and Level-2 processors for the instruments on-board of the Copernicus Sentinel-1, Sentinel-2, Sentinel-3 (Land) missions.
It is providing features such as:

   * A generic product representation EOProduct compatible with the UNIDATA CDM model with utilities library allowing:
            * Writing an EOProduct to different external representations, formats and file systems.
            * Reading an EOProduct from different external representations including the legacy file format (mostly SAFE).
   * Distributed and parallel computing based on Dask.
   * Logging and tracing tools.
   * Processors triggering and workflows definition.


Installation
=============

See https://cpm.pages.eopf.copernicus.eu/eopf-cpm/main/quickstart/installation.html for installation documentation

Contributing
============

See https://cpm.pages.eopf.copernicus.eu/eopf-cpm/main/contributing.html for contributing documentation


API Reference
=============

See https://cpm.pages.eopf.copernicus.eu/eopf-cpm/main/api/eopf.html for the latest release API


License
========

EOPF CPM is licensed under the Apache License, Version 2.0. See LICENSE.txt for the full license text.


Copyright
=========

Copyright (C)  2021-2025 ESA



.. |pipeline| image:: https://gitlab.eopf.copernicus.eu/cpm/eopf-cpm/badges/main/pipeline.svg
   :target: https://github.com/CSC-DPR/eopf-cpm/tree/main

.. |coverage| image:: https://gitlab.eopf.copernicus.eu/cpm/eopf-cpm/badges/main/coverage.svg
   :target: https://github.com/CSC-DPR/eopf-cpm/tree/main

.. |docstr-coverage| image:: https://gitlab.eopf.copernicus.eu/cpm/eopf-cpm/-/jobs/artifacts/main/raw/docstrcov.svg?job=docs-cov
   :target: https://github.com/CSC-DPR/eopf-cpm/tree/main

.. _dask: https://www.dask.org/
ricco 2.0.1
A handy ETL&GEOM kit

# 安装与更新

```shell
pip install ricco
pip install ricco -U # 或
pip install ricco --upgrade
```

# 文档

[Document](https://ricco1010.github.io/ricco/)

# 便捷方法介绍

## 数据读写

自动识别文件类型进行读写

1. 万能读取数据文件：`rdf()`

> * 支持`.xls/.xlsx/.csv/.parquet/.shp/.ovkml`等多种文件格式

```python
from ricco import rdf

df = rdf('/path/test.csv')
```

2. 读取文件夹中的数据：`rdf_by_dir()`

> * 适用于读取的文件夹中数据结构相同的多个数据，可指定扩展名，如不指定则读取所有文件；
> * 支持的文件格式与`rdf()`相同

```python
from ricco import rdf_by_dir

df = rdf_by_dir('/path_dir/', exts=['.csv'])
```

3. 文件保存：`to_file()`

> * 根据扩展名可自动报错多种格式的文件，支持的文件格式与`rdf()`相同
> * 可自动新建目录，避免了文件保存时需要手动创建目录的麻烦

```python
import pandas as pd
from ricco import to_file

df = pd.DataFrame()
to_file(df, '/path/test.csv')
```

## 文件处理

1. 文件拆分：`split2x()`

> * 将文件拆分为多个文件，放置在与文件同名目录下
> *
> * 支持的文件格式与`rdf()`相同，默认'.csv'

```python
from ricco import split2x

split2x('/path/test.csv', chunksize=1000)
split2x('/path/test.csv', parts=3)
```

2. 文件批量拆分：`reshape_files()`

> 将文件夹的文件大小进行统一拆分，并可传入自定义处理函数

```python
from ricco import reshape_files


def process(df):
  return df


# 将'/path_dir/'中的文件，拆分为大小为1000的 csv 文件，并保存在'/path_dir_to/'目录下，处理过程中调用 'process' 方法
reshape_files(
    from_dir='/path_dir/',
    to_dir='/path_dir_to/',
    to_ext='.csv',
    chunksize=1000,
    func=process,
)
```

3. 万能格式转换：`file_to_x()`

> 批量转换可使用`dir_file_to_x()`

```python
from ricco import file_to_x

# 将csv转为Excel文件，保存在相同目录下
file_to_x('/path/test.csv', to_ext='.xlsx')
```

## 地理处理

自动识别地理格式并进行转换，节省时间

1. 自动转为shapely格式：`auto2shapely()`

> 将带有地理信息的数据，自动转为 shapely 格式的GeoDataframe，地理格式可以为wkb/wkt/geojson等

```python
from ricco import auto2shapely
from ricco import rdf

df = rdf('./test.csv')
auto2shapely(df)  # Return: GeoDataframe
```

2. shapely转为任意格式：`shapely2x()`

```python
from ricco import rdf
from ricco import shapely2x

df = rdf('./test.csv')
# 转为wkb格式的Dataframe
shapely2x(df, geometry_format='wkb')  
```

3. 自动转为任务任意地理格式：`auto2x()`

```python
from ricco import rdf
from ricco import auto2x

df = rdf('./test.csv')
# 转为wkb格式的Dataframe
auto2x(df, geometry_format='wkb')
```

## 空间计算

1. 投影变换：`projection()`

> 根据经纬度自动获取 epsg code 进行投影，也可以指定城市和 epsg code 进行投影；
> 该方法是对geometry列进行投影，
> 如需要对经纬度进行投影，请使用`projection_lnglat()`方法

```python
from ricco.geometry.df import projection
```

2. 面积计算：`get_area()`

> 自动地理转换、投影、计算面积，新增面积列`area`，不改变原数据

```python
from ricco.geometry.df import get_area
```

3. 近邻分析：`nearest_kdtree()`和`nearest_neighbor()`

> 计算一个数据集中的元素到另一个数据集中全部元素的最短距离（单位：米）,
> 同时可进行其他统计

```python
from ricco.geometry.df import nearest_kdtree
from ricco.geometry.df import nearest_neighbor
```

4. buffer计算：`buffer()`

> 生成指定半径的buffer的geometry列

```python
from ricco.geometry.df import buffer
```

5. 空间统计：`spatial_agg()`

> 对面数据覆盖范围内的点数据进行空间统计

```python
from ricco.geometry.df import spatial_agg
```

6. 空间连接打标签：`mark_tags_v2()`

```python
from ricco import rdf
from ricco import mark_tags_v2

df_poi = rdf('./poi.csv')
df_plate = rdf('./plate.csv')

# 给POI数据打上plate_name的标签
mark_tags_v2(df_poi, df_plate, col_list='plate_name')

```
propagation-exporter 0.9.1
Systemd journal reader and exporter
Requires Python: >=3.6

Propagation Exporter
====================

A small tool that watches systemd journal entries from `opendnssec-signer.service`, parses zone update stats, checks downstream DNS SOA serial propagation, and exposes Prometheus metrics.

Install
-------

This project uses `pyproject.toml`. Install in your environment of choice.

Run
---

- As a console script (recommended):

	propagation-exporter -c /etc/coralogix-exporter/zones.yaml --metrics-port 8000

- As a module:

	python -m propagation_exporter -c /etc/coralogix-exporter/zones.yaml

- Legacy script (still supported):

	python main.py -c /etc/coralogix-exporter/zones.yaml

Testing with uv
----------------

This project uses [uv](https://github.com/astral-sh/uv) for Python environment and dependency management in development.

- Install dev deps (once):

	uv sync --extra dev

- Run tests with coverage:

	uv run pytest -q --cov=propagation_exporter --cov-report=term-missing

- Optional: type and style checks:

	uv run mypy propagation_exporter
	uv run flake8 propagation_exporter

CLI options
-----------

- -c, --config-file: YAML with zones and nameservers
- --metrics-port: Prometheus HTTP port (default 8000)
- --zone / --ns: Ad-hoc SOA serial checks without systemd
- --stats-regex: Override the regex used to parse journal "[STATS]" lines.

Regex parsing
-------------

By default, the parser extracts zone, serial, and RR count from lines like:

	[STATS] example.com 2024072826 RR[count=4 time=0(sec)] ...

Default pattern:

	^\[STATS\]\s+(?P<zone>\S+)\s+(?P<serial>\d+)\s+RR\[count=(?P<rr_count>\d+)

You can override it via CLI `--stats-regex` or programmatically when creating `ZoneManager`.

Module layout
-------------

- propagation_exporter/
	- __init__.py: public exports
	- __main__.py: `python -m` entry
	- cli.py: argument parsing and app wiring
	- journal.py: systemd journal reader
	- zone.py: ZoneInfo, ZoneConfig, ZoneManager, and parsing
	- dns_utils.py: DNSChecker utilities
	- metrics.py: Prometheus metrics

Prometheus metrics
------------------

- zone_out_of_sync{zone}
- zone_propagation_delay_seconds{zone, nameserver, serial}

Config file
-----------

YAML example:

	zones:
		example.com.:
			primary_nameserver: 192.0.2.1
			downstream_nameservers:
				- 192.0.2.2
				- 192.0.2.3

Notes
-----

- Ensure `systemd-python`, `dnspython`, `PyYAML`, and `prometheus-client` are available in the runtime environment.
solapi 5.0.3
SOLAPI SDK for Python
Requires Python: >=3.9

# Solapi SDK for Python

[![Python 3.9.21](https://img.shields.io/badge/python-3.9.21-blue.svg)](https://www.python.org/downloads)
![Python Supported version](https://img.shields.io/badge/python-%3E%3D3.9-orange)


You can send text messages(SMS, LMS, MMS), Kakao friendtalk(include notification friendtalk) in Korea using this package.
This package is 100% compatible with SOLAPI family services (CoolSMS, Purplebook, etc.).

Installing
To use the SDK, simply use pip package manager CLI. Type the following into a terminal window.

```shell
pip install solapi
```

## Usage

See [examples repository](https://github.com/solapi/solapi-python/tree/main/examples)

## Opening Issues

If you encounter a bug with the SOLAPI SDK for Python we would like to hear about it.  
Search the [existing issues](https://github.com/solapi/solapi-python/issues) and try to make sure your problem doesn’t
already exist before opening a new issue, It’s helpful if you include the version of the SDK you are using.  
Please include a stack trace and reduced repro case when appropriate, too.

## License

Licensed under the MIT License.