semvec/pypi-packages huggingface dataset:
hlog 1.0.1
Hash-chain log implementation

# HashLog
[![Coverage Status](https://coveralls.io/repos/github/ericgazoni/hlog/badge.svg?branch=master)](https://coveralls.io/github/ericgazoni/hlog?branch=master)

# Principles

- Records are immutable
- Records are ordered
- It must be possible to check `hash(Xi)` for any `i`
- `hash(Xi)` can be sent to anyone as a proof
- `hash(Xi) == hash(X, hash(Xi-1))`
- You do not need X to perform the check

# Installation

    $ pip install hlog

# Usage

## Getting started

```python
# create a chain
c = Chain()

# send some messages
c.append(message="Alice gives 10.36 euros to Bob", amount=10.36, currency="EUR")
c.append(message="Bob gives 2 dollars to Alice", amount=2, currency="USD")

# you can loop through the chain records
used_currencies = set(r.fields["currency"] for r in c.records)

# call verify() to ensure records have not been modified
c.verify()
```

## Raising an exception during validation

```python
c.verify(raise_on_error=True)
```
Verify will raise a `ModifiedRecordException`. It has 3 interesting attributes:

- `index`: the index in the chain where validation starts to fail
- `message`: a user-friendly message to indicate the error
- `record`: the `Record` object itself

## Dumping

```python
c = Chain()
c.append(message="hello")
c.append(message="wonderful")
c.append(message="world")

rows = c.dump()
```
`rows` is a `tuple` of `bytes`, each item being one record of the chain.

## Restoring from a dump

If you want to reconstruct your chain based on a file or database records, you can use `Chain.from_dump()`
```python
c = Chain()
c.append(message="hello")
c.append(message="wonderful")
c.append(message="world")

d = c.dump()

c2 = Chain.from_dump(d)

c2.verify()
```
jmapd 0.1.0a0
A JMAP server implementation
Requires Python: >=2.7

# jmapd

A Pure-python server implementation for JMAP (https://jmap.io).

https://github.com/arskom/jmapd

To get started:

    $ virtualenv venv
    $ source venv/bin/activate
    $ python setup.py develop

To run the daemon:

    $ source venv/bin/activate
    $ jmapd

You can use ``jmapd --autoreload`` to have code changes reflect instantly.

The server listens on TCP4:localhost:8100 by default. You may need to start it
twice to let it generate a config file first.

Once the server is up and running, run:

    $ curl localhost:8100/jmap | python3 -m json.tool

to get the capabilities object.
copyist 0.3
A tool to keep your configuration synced between repositories
Keywords: tools configuration generation sync

==============================================
copyist - Easily sync your configuration files
==============================================

To make sure all your projects share the same configuration, add a ``[tool.copyist]`` section to
the ``pyproject.toml`` file of your projects specifying the expected files and their generators.

For example, ``copyist``'s ``isort`` configuration is synced from ``examples/isort.py`` policy as specified
in its ``pyproject.toml``::

    [tool.copyist]
      [tool.copyist.context]
      package_name = "copyist"

      [tool.copyist.files]
      "pyproject.toml" = ["examples.isort.apply_config"]


Configuration
=============

``[tool.copyist.files]`` section lists the files to generate/keep synced with their list of generators to apply.

Each generator is a function taking as argument the previous content of the file and an optional context
specified in ``[tool.copyist.context]`` section.

The generators are generally provided by an other Python package specifying your expected configuration.


Command line options
====================

You can list them by running ``copyist --help``::

    usage: copyist [-h] [--version] [--config CONFIG] [--verbose] [--dry-run]

    optional arguments:
      -h, --help            show this help message and exit
      --version             show program's version number and exit
      --config CONFIG, -c CONFIG
                            Configuration file (defaults to pyproject.toml)
      --verbose, -v         Show the diff produced at each stage
      --dry-run             Do not overwrite files


Helpers
=======

Currently only ``copyist.helpers.fill_tool_section(previous_content, tool_name, section_text)`` is available
to help fill ``pyproject.toml`` with the different tools' configurations.