semvec/pypi-packages huggingface dataset:
physicsbox 0.5.0
Collection of useful calculations for optics and more.
Requires Python: >=3.8

# physicsbox

Collection of useful calculations for optics and more.
Intended to be a little toolbox/swiss army knife for everyday Python tasks for physists.

# Requirements

* numpy
* scipy
* (optional) numba to speed up OAP calculations

# Installation

Since the package is still under development, I recommend to clone this git
repository to your local machine and install the package in "develop" mode
via `pip`.

* `git clone https://gitlab.lrz.de/cala-public/packages/physicsbox.git`
* `cd physicsbox`
* `pip install -e .` where the `-e` installs in develop mode and `.` executes the `setup.py` in the current folder

If you make improvements to the package or want to download more recent
commits, you can now just use `git push/pull` as usual.

# Features

So far, the package contains the following submodules:
* `.units` which defines constants like `m=1, mm=1e-3` and so on to use in your code
* `.utils` contains some coordinate system handling that can be used to plot e.g. an image to scale easily
* `.optics` for
    * laser pulse calculations (power, energy, focus size etc. by typical formulas)
    * Gaussian pulse (in time and space) function definitions for 1d, 2d, 3d Gauss calculations
* `.relativity` is pretty basic so far, only contains a few formulas for relativistic energy/momentum etc.
* `.wavefronts` contains classes for reconstructing a wavefront from Shack-Hartmann images (see examples for use)
* `.oap` contains a class for vectorial calculation of the focus of an off-axis parabolic mirror
* Check out the examples for some things that this package is intended for.

# Contributing

* This started out as a private little helper project, if you have any suggestions just contact me.
* If you wish to make improvements or add new examples/ features, best create a new branch and a merge request.
    * This avoids headaches just in case I have uncommited/unpublished changes in my local copy somewhere.

# Project responsible

Leonard Doyle, leonard.doyle@physik.uni-muenchen.de
pyremotenode 0.6.1
A service library for controlling low power devices
Requires Python: <3.10,>=3.5
Keywords: telecommunications, scheduling

## pyremotenode

The aim of this python module is to provide an easy manner by which to 
schedule, monitor and communicate via / with an SBC board of non-denominational 
 variety via a multitude of transport mediums (potentially, Iridium at present).

## Development environment

Currently we use small-board computers running Debian and Python 3.5 for this, 
such as [the TS7400v2](https://www.embeddedts.com/products/TS-7400-V2). This is 
undoubtedly the best tested board with the utility, but any should potentially work.

### Process to run

1. Create a venv, preferably using a suitably old version of python
2. Install the library `python setup.py install` or what-have-you
3. Use `run_pyremotenode -np -n -v [config]` to run the software

### Current development tasks

In the years since I wrote this, Iridium technology and applications for this 
tool have remained relevant, but vastly changed. The feature set is now (finally)
getting some movement towards being more generic. 

The target is to converge on using this to:

* Schedule tasks on any SBC / suitably microcomputer
* Allow easy communication via Iridium (Certus IMT, though at time of writing 
 SBD and RUDICS are still catered for)
* Provide an easy-ish interface to link task scheduling and comms together

## A personal note

This was written for the British Antarctic Survey during our shutdown of Halley in 
2017, in a rush. This is why it's written in python, because it allowed for a very fast
development process. It was then used to process and relay GPS data on the 
[Brunt Ice Shelf Movement](https://www.bas.ac.uk/project/brunt-ice-shelf-movement/) 
during the winter months even when base power wasn't available (using solar/wind)
based on a few improvements over that time. It's also been used since for some other
experiments running on low power SBCs.

I would like to have written this properly for low power embedded systems at the 
time, but there was no opportunity. If we could change this to be designed in a more 
appropriate language (e.g. Rust), I'm well keen. As it is, it still has applications 
to remote field sites, as well as continues to run at Halley, and I don't have 
time to change that.

Please do get in contact if you're interested in developing this further, or have 
a crack at this repo! I'm really keen to trial other boards with better OS's, as
well as port it to MicroPython, which should be doable. 

[James](https://www.bas.ac.uk/profile/jambyr/)

### Version History

__Restarting, please refer to [changelog](CHANGELOG)__
python-opencnpj 0.1.4
Python library to fetch CNPJ data from OpenCNPJ API
Requires Python: >=3.11

# Python OpenCNPJ Library

[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)

Python library to fetch Brazilian CNPJ company data via [OpenCNPJ](https://opencnpj.org/).

---

## 🚀 Features

- Query company information by CNPJ
- Check if a CNPJ exists
- Utility function: Format CNPJ

---

## 📦 Installation

```bash
pip install python-opencnpj  
```

## 🔧 Use cases

### Fetch company informations

```python
from opencnpj import OpenCnpj

# Initialize client
client = OpenCnpj()

data = client.get("12345678000195")

print(data["razao_social"])

```

### Check if CNPJ exists

```python
from opencnpj import OpenCnpj

# Initialize client
client = OpenCnpj()

exists = client.exists("12.345.678/0001-95")

if exists:
    print('Exists!')
else:
    print('Does not exists!')
```

### Format to readable CNPJ

```python
from opencnpj import OpenCnpj

# Initialize client
client = OpenCnpj()

read_cnpj = client.format_cnpj("123456780001-95")

print(read_cnpj)

#### OUTPUT ####
# - 12.345.678/0001-95
```

## Working under a proxy server

```python
from opencnpj import OpenCnpj

proxies = {
    "http": "http://your_proxy_ip:port",
    "https": "http://your_proxy_ip:port",
}

# Initialize client
client = OpenCnpj(proxies=proxies)

data = client.get("123456780001-95")