semvec/pypi-packages huggingface dataset:
tpp7 2024.9.17
Un paquetage pour les TP de Physique d'Université Paris-Cité
Requires Python: >=3.6

# tpp7

Un package python pour les TP de Physique de l'Université de Paris-Diderot, maintenant Université Paris Cité.

Ce package la librairie python Oscillo 

## Installation

Ce paquet repose sur une installation python > 3.6

Il a en particulier été testé à partir de (miniconda)[https://docs.conda.io/en/latest/miniconda.html]

Il nécessite les paquets suivants :  `numpy, scipy, matplotlib, python-usbtmc, pandas, pyusb`
L'application d'utilisation de la librairie Oscillo requière également l'installation de `pyqt`

qu'il est vraisemblablement préférable d'installer avec le gestionnaire natif de votre installation python (python-usbtmc n'est pas disponible via conda):

    conda update -c conda-forge numpy scipy matplotlib pandas pyusb pyqt
    pip install --upgrade python-usbtmc tpp7

## linfitxy n'est plus distribué via ce paquet...

(https://pypi.org/project/fitutils/)[https://pypi.org/project/fitutils/]
(https://github.com/M-A-Verdier/Fitutils)[https://github.com/M-A-Verdier/Fitutils]
 
Il est cependant installé comme une dépendance.

### Oscillo
Oscillo est destiné à récupérer les données des oscilloscopes utilisés dans les salles de TP.
Il permet également de faire une copie d'écran.
Il est constitué d'une librairie permet d'utiliser facilement les fonctions de base par exemple dans un environnement comme Jupyter.
Il donne également accès à une application (en QT5) qui permet également facilement d'importer les données et de faire une copie d'écran.

Les oscilloscopes pris en charge pour le moment sont : 
- Tektronix
    - TDS
        - "1001B": (0x0699, 0x0362),
        - "1002B": (0x0699, 0x0363),
        - "1001C-EDU": (0x0699, 0x03aa),
        - "2004B": (0x0699, 0x0365),
        - "2024B": (0x0699, 0x036a), # Non testé
    - TBS
        - "1064": (0x0699, 0x03b3),
          "1104": (0x0699, 0x03b4),  
        - "1052B-EDU": {0x0699, 0x0368},
        
- Keyseight
    - DSO-X
        - "1102A": (0x2a8d, 0x1787),

- Agilent
    - __ 
        - "DSO1024A": (0x0957, 0x0588),

Il est sans doute assez facile d'utiliser d'autres modèles d'oscilloscopes.


# Installaion
- Auteur : Olivier Cardoso
- Email : Olivier.Cardoso@u-paris.fr
crunpyroll 2.4.5
Async API wrapper for Crunchyroll
Requires Python: >=3.7

<p align="center">
    <a href="https://github.com/stefanodvx/crunpyroll">
        <img src="https://github.com/stefanodvx/crunpyroll/assets/69367859/255bd391-3a7c-44f1-bf8c-08de275e73e9" alt="Crunpyroll">
    </a>
</p>

---

#### Features 🔥
- Fully async ([httpx](https://www.python-httpx.org/))
- Python 3.7+ support
- Clean and modern code
- Updated to latest Crunchyroll API

---

#### Installation ⚙️
```bash
# Using Git
pip install -U git+https://github.com/stefanodvx/crunpyroll

# Using PyPi (Recommended)
pip install -U crunpyroll
```

---

#### Documentation 📄
The documentation page undergoes automatic updates with each push. To access the latest documentation page, kindly refer to our [Read the Docs](https://crunpyroll.readthedocs.io/) project.

---

#### Example Code ❓
```py3
import crunpyroll
import asyncio

client = crunpyroll.Client(
    email="email",
    password="password",
    locale="it-IT"
)
async def main():
    # Start client and login
    await client.start()
    # Search for Attack on Titan
    query = await client.search("Attack On Titan")
    series_id = query.items[0].id
    print(series_id)
    # Retrieve all seasons of the series
    seasons = await client.get_seasons(series_id)
    print(seasons)

asyncio.run(main())
```

---

#### Downloading content 🔑
Crunchyroll has recently implemented the Widevine and PlayReady **Digital Rights Management (DRM)** systems, which has led to challenges for certain users attempting to download content from the platform.

Subsequently, the following code provides an illustrative example of obtaining decryption keys through the utilities of the [pywidevine](https://github.com/devine-dl/pywidevine) library and an L3 Content Decryption Module (CDM).
```py3
from pywidevine.cdm import Cdm
from pywidevine.pssh import PSSH
from pywidevine.device import Device
...
device = Device.load("l3cdm.wvd")
cdm = Cdm.from_device(device)
# Get streams of the episode/movie
streams = await client.get_streams("GRVDQ1G4R")
# Get manifest of the format you prefer
manifest = await client.get_manifest(streams.hardsubs[0].url)
# print(manifest)
# Get Widevine PSSH from manifest
pssh = PSSH(manifest.content_protection.widevine.pssh)
session_id = cdm.open()
challenge = cdm.get_license_challenge(session_id, pssh)
license = await client.get_license(
    streams.media_id,
    challenge=challenge,
    token=streams.token
)
cdm.parse_license(session_id, license)
for key in cdm.get_keys(session_id, "CONTENT"):
    print(f"{key.kid.hex}:{key.key.hex()}")
cdm.close(session_id)
# Deleting active streams will prevent Crunchyroll HTTP 420 (too_many_queued_streams) error.
await client.delete_active_stream(
    streams.media_id,
    token=streams.token
)
```
Output:
```bash
056ec1ca849e350181753cacc9bd404b:2307a188ecd8de3859b71b30791f171d
```
> [!TIP]
> Decryption keys are universally applicable to both video and audio streams, maintaining consistency across all available formats.
drcodecover 1.0.3
A special package for Sentry integration with advanced configuration options.
Requires Python: >=3.6

<h3 id="drcodecover">drcodecover</h3>
<p><strong>drcodecover</strong> is a Python package that provides a wrapper around , making it easy to configure and use &#39;s features, including profiling and error handling.</p>
<h2 id="installation">Installation</h2>
<p>To install the package, run:</p>
<p>bash</p>
<h2 id="copy-code--pip-install-drcodecover--getting-started">Copy code
<pre><code class="language-const"> pip install drcodecover
</code></pre>
Getting Started</h2>
<p><strong>Basic Usage</strong></p>
<p>python</p>
<p>Copy code</p>
<pre><code class="language-const"> 
from drcodecover import init_drcode
config = {
'public_key': 'yourPublicKey',
'project_id': 'yourProjectId',
'traces_sample_rate': 1.0, # optional
'profiles_sample_rate': 1.0 # optional
}
init_drcode(config)

</code></pre></p>

<h2 id="configuration">Configuration</h2>
<p><strong>Configuration Object</strong></p>
<ul>
<li><code>public_key</code> (str): The public key for .</li>
<li><code>project_id</code> (str): The  project ID.</li>
<li><code>traces_sample_rate</code> (float, optional): The sample rate for tracing (default: 1.0).</li>
<li><code>profiles_sample_rate</code> (float, optional): The sample rate for profiling (default: 1.0).</li>
</ul>
<h2 id="api-reference">API Reference</h2>
<p><strong>Functions</strong></p>
<ul>
<li><p><strong>init_drcode(config: dict) -&gt; None</strong></p>
<p>Initializes  with the provided configuration.</p>
<ul>
<li><strong>config</strong> (dict): The configuration dictionary.</li>
</ul>
</li>
</ul>
<p><strong>Configuration Dictionary</strong></p>
<p>The configuration dictionary should contain the following keys:</p>
<ul>
<li><code>public_key</code> (str): The public key for .</li>
<li><code>project_id</code> (str): The  project ID.</li>
<li><code>traces_sample_rate</code> (float, optional): The sample rate for tracing (default: 1.0).</li>
<li><code>profiles_sample_rate</code> (float, optional): The sample rate for profiling (default: 1.0).</li>
</ul>
<h2 id="license">License</h2>
<p>This project is licensed under the MIT License.</p>
<h2 id="version">Version</h2>
<p>1.0.3</p>