codenotary / codenotary/immudb-py

Unnecessary Google API dependencies in requirements

Open
#85 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
52
Forks
8
PR merge metrics
No merged PRs in 30d

Description

## Summary

The package includes several Google API dependencies that are not actually used in the codebase, causing unnecessary bloat (~15-20MB extra).

## Unused dependencies

| Package | In setup.py/requirements.txt | Actually imported |
|---------|------------------------------|-------------------|
| `google-api` | ✅ | ❌ |
| `google-api-core` | ✅ | ❌ |
| `google-api-python-client` | ✅ | ❌ |
| `google-auth` | ✅ | ❌ |
| `google-auth-httplib2` | ✅ | ❌ |
| `googleapis-common-protos` | ✅ | ❌ |

## Evidence

I searched the codebase and found only these Google-related imports:

- `client.py`: `from google.protobuf import empty_pb2`
- `rootService.py`: `from google.protobuf import empty_pb2`

Both only use `google.protobuf` (the core protobuf package), not any of the Google API packages listed above.

## Suggested fix

Remove unused dependencies from `setup.py` and `requirements.txt`:

```diff
- google-api>=0.1.12
- google-api-core>=2.18.0
- google-api-python-client>=2.123.0
- google-auth>=2.29.0
- google-auth-httplib2>=0.2.0
- googleapis-common-protos>=1.63.0
```

Keep only what's actually used:
- `grpcio`
- `protobuf`
- `ecdsa`
- `cachetools`
- (and other actually-used packages)

## Impact

- Faster installs
- Smaller container images
- Fewer transitive dependencies to audit for security
- Reduced chance of dependency conflicts

Happy to submit a PR if this approach is acceptable.

Contributor guide

No contributing guide indexed for this repository

Research direction

Review setup.py and requirements.txt alongside the listed Google-related imports in client.py and rootService.py. Confirm the packages are unused, remove the six listed Google API dependencies while retaining protobuf and other used packages, then run the project’s available tests or installation checks to verify dependency resolution.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
tooling
Issue type
Refactor
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.