semvec/pypi-packages huggingface dataset:
cloudzipfile 1.0.5
Use cloud-stored zipfiles with full ZipFile functionality, including partial downloads. 
Requires Python: >=3.0

# cloudzipfile
This module provides a way to access zipfiles in cloud storage without downloading the entire zip file. 
It is inspired by [remotezip](https://github.com/gtsystem/python-remotezip), but leverages the respective cloud APIs rather than requiring support for the [range header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests).
It currently only supports Azure, porting it to other systems should be fairly simple, pull requests very welcome!

## Installation
```
pip install cloudzipfile
```

## Usage
cloudzipfile is a subclass of Python's standard library [zipfile.Zipfile](https://docs.python.org/3/library/zipfile.html) and thus supports all its read methods. 

Instead of providing Zipfile with a path, you provide a blob client of your cloud provider, for example:
```
# Import
from azure.storage.blob import BlobClient
from cloudzipfile.cloudzipfile import CloudZipFile
import os, tempfile, uuid

# Define blob client
BLOB_URL = 'https://cloudzipfileexamples.blob.core.windows.net/test/files.zip'
blobClient = BlobClient.from_blob_url(BLOB_URL)

# Define link to zipfile
# Will download central directory (where to find specific files)
PATH_OUTPUT = os.path.join(tempfile.gettempdir(), str(uuid.uuid4()))
FILES_DESIRED = ['file1.txt', 'file3.txt']
cloudZipFile = CloudZipFile(blobClient)

# Extract specific files
cloudZipFile.extractall(path=PATH_OUTPUT, members=FILES_DESIRED)

# Verify success: should show file1.txt and file2.txt
print(f'{PATH_OUTPUT}: {os.listdir(PATH_OUTPUT)}')

```

## Future Development
Supporting other systems is fairly straightforward as you require only two methods. One that determines the size of the cloud file and one that performs a partial download, these should be supported by all major providers (I simply don't have experience with them).

## How It Works
Zip files have a fixed structure, which can be leveraged for partial reading. They end with an [EOCD](https://en.wikipedia.org/wiki/ZIP_(file_format)#End_of_central_directory_record_(EOCD)) which lists where to find the central directory. The [central directory](https://en.wikipedia.org/wiki/ZIP_(file_format)#Central_directory_file_header) lists all files in the archive and where to find them. Python's [zipfile](https://docs.python.org/3/library/zipfile.html) uses these two pieces to determine which part of the file to load into memory when the user requests a particular file. This package overwrites that loading process to work with cloud APIs directly rather than only with local filesystems. All credit go to [remotezip](https://github.com/gtsystem/python-remotezip) for figuring out how to overwrite the process, I only edited it to use APIs rather than HTTP requests.
Draw-Reaction-zhiyix2 0.1.1
A package for drawing compound reaction
Requires Python: >=3.10

# Draw_Reaction

## About The Project
This program draws reactions from a txt file with reactions in the SBML format.


## Getting Started
The followings are the instructions on setting the program locally.

### Prerequisites
1. Python 3.10 or higher.
2. Tkinter 0.1.0 or higher.
To setup the environment for executing "python Draw_Reaction.py" you need to install the Tkinter by typing "pip install tk" in the terminal/cml.
  ```sh
   pip install tk
   ```


### Installation

There are two options to install the program.

1. Clone the repo from GitHub
  ```sh
   git clone https://github.com/zhiyix2/Draw_Reaction.git
   ```
2. Install the package using pip
  ```sh
   pip install Draw-Reaction-zhiyix2==0.1.1
  ```


## Usage

This program can be run by executing the following:
  ```sh
   python __main__.py <TXT File Path>
  ```
This program draws reactions from given txt file.
The given txt file has to include the reaction section according to the format below:
// Reactions:
  ```sh
  J0: MKKK => MKKK_P; uVol*J0_V1*MKKK/((1 + (MAPK_PP/J0_Ki)^J0_n)*(J0_K1 + MKKK));

  J1: MKKK_P => MKKK; uVol*J1_V2*MKKK_P/(J1_KK2 + MKKK_P);

  J2: MKK => MKK_P; uVol*J2_k3*MKKK_P*MKK/(J2_KK3 + MKK);

  J3: MKK_P => MKK_PP; uVol*J3_k4*MKKK_P*MKK_P/(J3_KK4 + MKK_P);

  J4: MKK_PP => MKK_P; uVol*J4_V5*MKK_PP/(J4_KK5 + MKK_PP);

  J5: MKK_P => MKK; uVol*J5_V6*MKK_P/(J5_KK6 + MKK_P);
  ```



## License

Distributed under the MIT License. See `LICENSE` for more information.




## Contact

Zhiying Xie - zhiyix2@uw.edu

Project Link: [https://github.com/zhiyix2/Draw_Reaction.git](https://github.com/zhiyix2/Draw_Reaction)