semvec/pypi-packages huggingface dataset:
zhtools 1.2.3
Some simple tool methods like cache, timetools and so on.
Requires Python: >=3.12

# Zhtools
Some simple tool methods like cache, timetools and so on.


## Modules
- cache: A simple cache decorator.
- data_structs: Some data structs implements and tools.
- security: some simple security methods.
- api_service: Simple way to define an api client.
- async_tools: about python async/await.
- calculation: Math calculation methods.
- cli: Command-line tools.
- concurrents: Some tools for concurrent base on multi process/thread/coroutine.
- config: Global config by this tool.
- context_manager: Common context manager.
- decorators: Common decorators.
- exceptions: Common exceptions by this tool.
- random: Random methods.
- signals: simple signal dispatcher.
- timetools: Some date/time/timezone tools.
- typing: Common type hints.


## Update logs
- **1.2.3** 2024-07-25
  - fix: aes decrypt
- **1.2.0** 2024-07-22:
  - fix: move `typing` to `typed`
  - feat: `zt` command tools: support version tools.
- **1.1.1** 2024-07-16:
  - fix: `Enum` define error
- **1.1.0** 2024-07-04:
  - feat: `multi_by_date` decorator
  - feat: Upgrade to python 3.12
  - fix: Support more type hint
- **1.0.2** 2024-01-12:
  - Fix AES encrypt/decrypt type hint.
- **1.0.0** 2023-06-17:
  - Refactored code to used more type hint. Now only support python 3.11+.
  - Because of the ChatGPT, remove the `code_generator` module.
  - Remove `data_structs.lazy` module, recommend to use `lazy-object-proxy` instead.
  - Remove `exporters` module.
  - Remove `io_tools` module.
  - Remove `redis_helper` module.
  - Remove `log` module.
  - Move `enum` to `data_structs.enum`.
  - Move `third_parties.pydantic` to `data_structs.pydantic`.
  - Move `type_hint` to `typing`.
  - Change `requests` and `aiohttp` requirement to `httpx`.
- **0.3.0** 2022-07-21:
  - Refactored cache.
  - Add signal dispatcher.
- **0.2.3** 2022-04-08: 
  - Fix & add cli command.
  - Add log module.
- **0.2.2** 2022-01-08:
  - Add AES encrypt/decrypt method. 
- **0.2.1** 2021-12-30:
  - Move `convertors` to `data_structs.convertors`
  - add some data_structs and methods.
- **0.1.1** 2021-12-8:
  - Optimize timetools. Now can set global timezone.
- **0.0.11** 2021-10-21:
  - Add js-like *Promise*.
- **0.0.10** 2021-06-25:
  - Add go-like defer.
- **0.0.9** 2021-06-04:
  - Fix setup bug.
- **0.0.8** 2021-06-04:
  - Add concurrents tools.
  - Add orm code generators command-line client.
- **0.0.7** 2021-05-21:
  - Add singleton decorator.
  - Add orm code generators.
- **0.0.6** 2021-04-25:
  - Add enum module.
- **0.0.5** 2021-04-19: 
  - Added api service.
  - Optimized the performance of XlsxReader.
  - Added progress bar to XlsxExporter (supported by [tqdm](https://github.com/tqdm/tqdm)).
psqlpy-piccolo 0.1.7
PSQLPy-based engine for Piccolo-orm
Requires Python: <4.0,>=3.8
Keywords: python, postgresql, psqlpy, piccolo, async-engine, psqlpy-engine

[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/psqlpy-piccolo?style=for-the-badge)](https://pypi.org/project/psqlpy-piccolo/)

# psqlpy-piccolo

This is a third-party Rust engine for [Piccolo ORM](https://github.com/piccolo-orm/piccolo).  
Under the hood, this engine uses [PSQLPy](https://github.com/qaspen-python/psqlpy), which is Rust-based and blazingly fast 🔥.

## Installation

You can install package with `pip` or `poetry`.

poetry:

```bash
$ poetry add psqlpy-piccolo
```

pip:

```bash
$ pip install psqlpy-piccolo
```

## Usage

Usage is as easy as possible.  
PSQLPy based engine has the same interface as other engines from piccolo.

```python
from psqlpy_piccolo import PSQLPyEngine


DB = PSQLPyEngine(
    config={
        "host": "127.0.0.1",
        "port": 5432,
        "user": "postgres",
        "password": "postgres",
        "database": "psqlpy-piccolo",
    },
)
```
markdownfeeds 1.9.1
Small library that can generated paged feeds (json, html, etc) based on a collection of markdown files.
Requires Python: >=3.11.0

# Markdown Feeds

A fast and efficient tool that can generate paged "feeds" based on Markdown files.

A example use case of this tool is to generate a JSON or HTML feed for some news that you may have.

**Core Features:**

* Generate [complaint JSON Feed v1.0](https://www.jsonfeed.org/version/1/_) feeds
* Generate HTML feeds
* Supports pagination, with user defined "items per page"
* Fast and efficient, uses async based work groups
* Reads Markdown files in [YAML Front-Matter Jekyll Format](https://jekyllrb.com/docs/collections/#add-content)
* Markdown files can provide yaml based "front-matter" allowing extra details to be provided to feed

## Simple JSON Feed Example

This tool can be used to take the below files:

### Example Code

```python
from markdownfeeds.Generators.Json.JsonFeedGenerator import JsonFeedGenerator
from markdownfeeds.Generators.Json.JsonFeedGeneratorSettings import JsonFeedGeneratorSettings
from markdownfeeds.Generators.Json.Models.JsonFeed import JsonFeed

JsonFeedGenerator(
    feed=JsonFeed(title='Captain\'s Log 1'),
    generator_settings=JsonFeedGeneratorSettings(
        source_directory='../1-simple-json-feed/logs',
        target_directory='json/log1',
    )
).run_standalone()
```

### Input

**File 1: 2024-02-02-hello-world.md:**
```markdown
---
title: "Hello World!"
author: "Jean-Luc Picard"
---

Make it so!
```

**File 2: 2024-02-06-another-test-file.md:**
```markdown
---
title: "Another Test File"
author: "Kathryn Janeway"
location: "Delta Quadrant"
---

Tom, warp 6.
```

### Output

If you run the above files via the tool using `JsonFeedGenerator` generator, the output would be similar to:

```json
{
  "version": "https://jsonfeed.org/version/1",
  "title": "News Feed",
  "items": [
    {
      "id": "11581cc76bfff77669ebd94621959b016416e48d",
      "title": "Another Test File",
      "summary": "Tom, warp 6.",
      "date_published": "2024-02-06T00:00:00",
      "author": "Kathryn Janeway",
      "_location": "Delta Quadrant"
    },
    {
      "id": "de9d22cb5f4a20a3aeb00d156e086122148cd141",
      "title": "Hello World!",
      "summary": "Make it so!",
      "date_published": "2024-02-02T00:00:00",
      "author": "Jean-Luc Picard"
    }
  ],
  "_total_items": 2,
  "_total_pages": 1
}
```

## More Examples

There are a few additional examples available below:

* [Example 1 - Generate an HTML Feed](examples/1-simple-json-feed/)
* [Example 2 - Generate a JSON Feed with pagination](examples/2-paged-html-feed)
* [Example 3 - Generate multiple different feeds in parallel using the `Gatherer`](examples/3-multiple-parallel-feeds)
* [Example 4 - Inject Feed Properties](examples/4-inject-feed-properties)

### Extending

You can extend the functionality of this tool by adding support for new feed types. To do this, please create a new
feed class and extend the "BaseFeed" class.