Metadata-Version: 2.4
Name: falgueras
Version: 0.1.2
Summary: Common code for Python projects involving GCP, Pandas, and Spark.
Author-email: Aleix Falgueras Casals <falguerasaleix@gmail.com>
License: MIT
License-File: LICENSE
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Requires-Dist: colorama~=0.4.6
Requires-Dist: db-dtypes~=1.3.1
Requires-Dist: google-api-core~=2.24.0
Requires-Dist: google-api-python-client~=2.156.0
Requires-Dist: google-auth~=2.37.0
Requires-Dist: google-cloud-bigquery-storage~=2.27.0
Requires-Dist: google-cloud-bigquery~=3.27.0
Requires-Dist: google-cloud-language~=2.16.0
Requires-Dist: google-cloud-secret-manager~=2.22.0
Requires-Dist: google-cloud-storage~=2.19.0
Requires-Dist: numpy~=2.2.1
Requires-Dist: pandas~=2.2.2
Requires-Dist: protobuf~=5.29.2
Requires-Dist: pytz~=2024.1
Requires-Dist: requests~=2.32.3
Description-Content-Type: text/markdown


# Falgueras 🪴

Common code for Python projects involving GCP, Pandas, and Spark. 

The main goal is to accelerate development of data-driven projects by providing a common framework for developers
with different backgrounds: software engineers, big data engineers and data scientists.

## Packages

### `falgueras.common`

Shared code between other packages: datetime, json, enums, logging.

### `falgueras.gcp`

The functionalities of various Google Cloud Platform (GCP) services are encapsulated within 
custom client classes. This approach enhances clarity and promotes better encapsulation.

For instance, Google Cloud Storage (GCS) operations are wrapped in the `gcp.GcsClient` class,
which has an attribute that holds the actual `storage.Client` object from GCS. Multiple `GcsClient` 
instances can share the same `storage.Client` object.

### `falgueras.pandas`

Pandas related code.

The pandas_repo.py file provides a modular and extensible framework for handling pandas DataFrame operations 
across various storage systems. Using the `PandasRepo` abstract base class and `PandasRepoProtocol`, 
it standardizes read and write operations while enabling custom implementations for specific backends 
such as BigQuery (`BqPandasRepo`).

These implementations encapsulate backend-specific logic, allowing users to interact with data sources 
using a consistent interface. 