semvec/pypi-packages huggingface dataset:
cameratransform 1.2.1
Projects coordinates from 2D to 3D and can fit camera parameters
License: MIT
Requires Python: >=3.11

# CameraTransform

[![DOC](https://readthedocs.org/projects/cameratransform/badge/)](https://cameratransform.readthedocs.io)
[![test](https://github.com/rgerum/cameratransform/actions/workflows/test.yml/badge.svg)](https://github.com/rgerum/cameratransform/actions/workflows/test.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![DOI](https://img.shields.io/badge/DOI-10.1016/j.softx.2019.100333-blue.svg)](https://doi.org/10.1016/j.softx.2019.100333)


CameraTransform is a python package which can be used to fit camera transformations and apply them to project points
from the camera space to the world space and back.

For installation and usage please refere to the [Documentation](http://cameratransform.readthedocs.org/).
exponent-server-sdk 2.2.0
Expo Server SDK for Python
License: MIT

# exponent-server-sdk-python

This repo is maintained by Expo's awesome community :heart_eyes:! So, if you have problems with the code in this repository, please feel free to open an issue, and make a PR. Thanks!

## Installation

```
pip install exponent_server_sdk
```

## Usage

Use to send push notifications to Exponent Experiences from a Python server.

[Full documentation](https://docs.expo.dev/push-notifications/sending-notifications/#http2-api) on the API is available if you want to dive into the details.

Here's an example on how to use this with retries and reporting via [pyrollbar](https://github.com/rollbar/pyrollbar).
```python
from exponent_server_sdk import (
    DeviceNotRegisteredError,
    PushClient,
    PushMessage,
    PushServerError,
    PushTicketError,
)
import os
import requests
from requests.exceptions import ConnectionError, HTTPError

# Optionally providing an access token within a session if you have enabled push security
session = requests.Session()
session.headers.update(
    {
        "Authorization": f"Bearer {os.getenv('EXPO_TOKEN')}",
        "accept": "application/json",
        "accept-encoding": "gzip, deflate",
        "content-type": "application/json",
    }
)

# Basic arguments. You should extend this function with the push features you
# want to use, or simply pass in a `PushMessage` object.
def send_push_message(token, message, extra=None):
    try:
        response = PushClient(session=session).publish(
            PushMessage(to=token,
                        body=message,
                        data=extra))
    except PushServerError as exc:
        # Encountered some likely formatting/validation error.
        rollbar.report_exc_info(
            extra_data={
                'token': token,
                'message': message,
                'extra': extra,
                'errors': exc.errors,
                'response_data': exc.response_data,
            })
        raise
    except (ConnectionError, HTTPError) as exc:
        # Encountered some Connection or HTTP error - retry a few times in
        # case it is transient.
        rollbar.report_exc_info(
            extra_data={'token': token, 'message': message, 'extra': extra})
        raise self.retry(exc=exc)

    try:
        # We got a response back, but we don't know whether it's an error yet.
        # This call raises errors so we can handle them with normal exception
        # flows.
        response.validate_response()
    except DeviceNotRegisteredError:
        # Mark the push token as inactive
        from notifications.models import PushToken
        PushToken.objects.filter(token=token).update(active=False)
    except PushTicketError as exc:
        # Encountered some other per-notification error.
        rollbar.report_exc_info(
            extra_data={
                'token': token,
                'message': message,
                'extra': extra,
                'push_response': exc.push_response._asdict(),
            })
        raise self.retry(exc=exc)
```
worklog-cli 1.0.0
A personal time-tracking system
License: MIT
Requires Python: <4.0,>=3.10

# Worklog

A personal time-tracking system. 

Worklog provides a simple mechanism for logging in and out of accounts which are
billed for time elapsed. The author, a professor, uses it to bill time to
various commitments. Some really are paid hourly (e.g. consulting), but most are
not. The primary use is to track and analyze how time is spent. 

## Installation

Worklog can be easily installed using [pipx](https://pipx.pypa.io/latest/installation/):

    pipx install worklog-cli

You will also need to install [hledger](https://hledger.org/). 

## Usage

If you are just getting started, make a list of the ways you spend time (or at
least those you want to track). If you want to nest accounts, separate them with
colons. For example, here are a few of my accounts:

```
 research:grants
 research:projects
 research:pubs
 research:reading
 research:lab
 teaching:planning
 service:advising
 identity:website
 identity:network
 overhead:email
 overhead:waste
 overhead:admin
```

Now run `work`. You will be asked to log in to an account, and then to enter a
description of the work you are doing. (Accounts can be auto-completed using tab.)

```
% work
Log in to account: academic:code
Work description: Writing the Worklog README
[Enter to log out]
```

Press enter when you finish that work session, and you will be prompted to log
in to another account. Press Control + C when you are finished. That's it!

## Commands

The base command is `work`, which enters a loop for logging in and out of
accounts. There are several other modes available:

- `work --report` shows recent work statistics and quits. 
- `work --edit` opens the current worklog for editing. Sometimes I find I need to
edit the worklog to add a work session or change times (for example, if I forgot
to log out before going to bed). 
- `work --archive` archives the current worklog at the given filename and starts a
new worklog. If you plan to log your work over time, I suggest you keep your log
files in version control. 

## Configuration

Worklog relies on a simple configuration file which will be automatically
created at `~/.worklog/worklog.config` by default. 

```
[WORKLOG]
logfile = /Users/me/.worklog/worklog.timeclock
editor = vim
```

## Formats

Worklog relies on [hledger](https://hledger.org/), a Haskell implementation of
[ledger](https://github.com/ledger/ledger), for double-entry bookkeeping which
regards time as a resource just like money. One main design goal of this system
is a [human-readable ledger format](https://hledger.org/timeclock.html) which
can also be parsed by scripts.
dora-rs 0.3.12
`dora` goal is to be a low latency, composable, and distributed data flow.
License: MIT
Requires Python: >=3.7

This crate corresponds to the Node API for Dora.

## Building

To build the Python module for development:

```bash
uv venv --seed -p 3.11
uv pip install -e .
```

## Type hinting

Type hinting requires to run a second step

```bash
python generate_stubs.py dora dora/__init__.pyi
maturin develop
```