semvec/pypi-packages huggingface dataset:
dagster-composable-graphs 0.1.2
Library to create Dagster jobs from YAML
Requires Python: <3.13,>=3.10

<p align="center">
    <img width="256" height="256" src="docs/src/assets/logo.svg">
</p>

# Dagster Composable Graphs

[Dagster](https://github.com/dagster-io/dagster) is a cloud-native data
pipeline orchestrator for the whole development lifecycle, with integrated
lineage and observability, a declarative programming model, and best-in-class
testability.

This library provides additional functionality to define dagster jobs from a
file in `.yaml` format and may be used with any other package that integrates
with dagster.

Visit [the documentation here](https://docs.truevoid.dev).

Partially inspired by post *Abstracting Pipelines for Analysts with a YAML DSL*
[on the dagster blog](https://dagster.io/blog/simplisafe-case-study).

## Example

Consider the following definition of a `ComposableGraph`. Notice in particular
sections `inputs`, `operations` and `dependencies`. Respectively these define
the graph inputs, which dagster
[ops](https://docs.dagster.io/concepts/ops-jobs-graphs/ops#ops) or
[graphs](https://docs.dagster.io/concepts/ops-jobs-graphs/graphs#op-graphs) are
part of the job, and their dependencies.

```yaml
apiVersion: truevoid.dev/v1alpha1
kind: ComposableGraph
metadata:
  name: concatenate-graphs
spec:
  inputs:
    x: 2.0
    y: 5.0
  operations:
    - name: add_and_multiply
      function: example.jobs.add_and_multiply
    - name: add
      function: example.jobs.add
    - name: multiply
      function: example.jobs.multiply
  dependencies:
    - name: add_and_multiply
      inputs:
        - x
        - y
    - name: add
      inputs:
        - node: add_and_multiply
          pointer: /add
        - x
    - name: multiply
      inputs:
        - y
        - node: add_and_multiply
          pointer: /multiply
```

Results in the following job, visualized using dagster webserver UI:

<p align="center">
    <img width="512" src="docs/src/assets/graph.png">
</p>
aval 0.0b1
AVal is a class capable of applying a list of validation strategies and an exception handler to an object to be validated. It can be used by calling the validation method as well as a decorator
Requires Python: >=3.6
Keywords: validator, validation, data validation, abstract validator, validation strategy, validation method, validation decorator

# aval

## Abstract

**Abstract Validator** (``AVal``) is a class implemented in Python, capable 
of taking a list of specific validation strategies (with parameters), as well 
as a method for handling exceptional situations, and applying these methods to 
the validation object. The **Abstract Validator** can be used by calling the 
validation **method** on an instance of a class, as well as a **decorator**.

## Installation

Use:

``pip install aval``

## Basic usage
```
def _is_string(obj: v.VObj, params: v.VParams) -> None:
    t = type(obj)
    if t != str:
        raise v.ValidationError('Some description')


def _correct_length(obj: v.VObj, params: v.VParams) -> None:
    mn = params.get('min_length', 1)
    mx = params.get('max_length', 32)
    ln = len(obj)
    if not mn <= ln <= mx:
        raise v.ValidationError('Some description'
        )


vld = v.Validator([_is_string, _correct_length])
vld.validate('Any message')
```

## Details

More detailed documentation (in Russian) can be found at
https://docs.mxustin.ru/micro/validator/manual/intro
hack4u-prueba 0.1.4
Una biblioteca para consultar cursos





## Cursos disponibles:

- Introducción al Linux [15 horas]
- Personalización de Linux [3 horas]
- Introducción al Hacking [54 horas]

## Instalación

Instala el paqute usando `pip3`:

```python3
pip3 install hack4u
```

## Uso básico

### Listar todos los cursos

```python3
from hack4u import list_courses

from course in courses:
    print(course)
```

### Obtener un curso por su nombre

```python3
from hack4u import get_course_by_name

course = get_course_by_name("Introducción a Linux")
print(course)
```

### Calcular ducarión total de los cursos

``` python3
from hack4u.utils import total_duration

print(f"Duración total: {total.duration()} horas")
```
neuromorpho-api 0.2
Querying neuromorpho.org database with Python requests
Requires Python: >=3.8
Keywords: neuromorpho.org, neuromorpho API, neuron

neuromorpho-api
===============

Querying the [neuromorpho.org](https://neuromorpho.org/) database in Python
with [requests](https://pypi.org/project/requests/).

```{admonition} Update: 05-2024

As of May 2024, the SSL key for neuromorpho.org has been updated, and the
workaround packaged here is no longer necessary!
The [requests](https://pypi.org/project/requests/) package can now be used
directly with the neuromorpho.org API.
This project will be archived, though the documentation will remain live and
updated to demonstrate programmatic access of neuromorpho data.
```

## Quickstart

```python
>>> import requests

>>> neuron_endpoint = "https://neuromorpho.org/api/neuron/"
>>> resp = requests.get(neuron_endpoint + "fields")
>>> resp.json()
{'Neuron Fields': ['neuron_id',
  'neuron_name',
  'archive',
  'age_scale',
  'gender',
  ...
```

See the tutorial for more detailed examples, including
[selecting neurons by attribute pattern matching][nmapi-selection] and
[downloading SWC traces][nmapi-swc].

[nmapi-selection]: https://neuromorpho-api.readthedocs.io/en/latest/tutorial.html#neuron-query
[nmapi-swc]: https://neuromorpho-api.readthedocs.io/en/latest/tutorial.html#neuron-traces

---

## What ~~is~~ was this package?

The `neuromorpho-api` package provides a `requests.Session` instance with a
custom `SSLContext` needed for interacting with
[neuromorpho.org](https://neuromorpho.org/).

### Why can't I just use `requests` directly?

#### NOTE: should no longer be an issue as of 05-24

You may see something like the following:

```python
>>> import requests
>>> requests.get("https://neuromorpho.org/api/neuron/id/1")
Traceback (most recent call last)
   ...
SSLError: HTTPSConnectionPool(host='neuromorpho.org', port=443): Max retries exceeded with url: /api/neuron/id/1 (Caused by SSLError(SSLError(1, '[SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1006)')))
```

It appears the key provided by `neuromorpho.org` is incompatible with the
default Python SSL cipher.
This package works around this issue using [Robin De Schepper's solution
posted on Stack Overflow](https://stackoverflow.com/a/76217135).
At some point in the future, the neuromorpho certificate may (hopefully) be
updated, at which point this package will be archived.

### Future compatibility

The `requestor` provided by this package is intended as a temporary workaround
for the current DH key issue with neuromorpho.org.
If the neuromorpho.org certificate is updated, the `requestor` with the custom
SSLContext will no longer be necessary, and users can switch to using
`requests` directly.
Therefore, the following import alias is recommended:

```python
from neuromorpho-api import requestor as requests
```

With an updated certificate, the above can be changed to:

```python
import requests
```

and all code that depends on `requests.get` should continue to work as expected.