Skip to content

Commit 2f579a5

Browse files
cleanup (#5)
1 parent 15bbbc8 commit 2f579a5

File tree

18 files changed

+453
-586
lines changed

18 files changed

+453
-586
lines changed

.github/workflows/lint.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
name: Lint
3+
4+
on: ["push"]
5+
6+
jobs:
7+
lint:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions/checkout@v4
11+
- run: make env
12+
- run: make lint

.github/workflows/pylint.yml

Lines changed: 0 additions & 25 deletions
This file was deleted.
Lines changed: 12 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,23 @@
1-
# This workflow will upload a Python Package using Twine when a release is created
2-
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
3-
4-
# This workflow uses actions that are not certified by GitHub.
5-
# They are provided by a third-party and are governed by
6-
# separate terms of service, privacy policy, and support
7-
# documentation.
8-
9-
name: Upload Python Package
1+
---
2+
name: Publish Python Package
103

114
on:
125
release:
13-
types: [published]
6+
types: ["published"]
147

158
permissions:
169
contents: read
1710

1811
jobs:
1912
deploy:
2013
runs-on: ubuntu-latest
21-
2214
steps:
23-
- uses: actions/checkout@v3
24-
25-
- name: Set up Python
26-
uses: actions/setup-python@v3
27-
with:
28-
python-version: '3.x'
29-
30-
- name: Install dependencies
31-
run: |
32-
python -m pip install --upgrade pip
33-
pip install build
34-
pip install -r requirements.txt
35-
36-
- name: Build package
37-
run: python -m build
38-
39-
- name: Publish package
40-
uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29
41-
with:
42-
user: __token__
43-
password: ${{secrets.PYPI_API_TOKEN}}
15+
- uses: actions/checkout@v4
16+
- run: make env
17+
- run: make build
18+
19+
- name: Publish package
20+
uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29
21+
with:
22+
user: __token__
23+
password: ${{secrets.PYPI_API_TOKEN}}

.gitignore

Lines changed: 4 additions & 159 deletions
Original file line numberDiff line numberDiff line change
@@ -1,161 +1,6 @@
1-
# Byte-compiled / optimized / DLL files
2-
__pycache__/
3-
*.py[cod]
4-
*$py.class
5-
6-
# C extensions
7-
*.so
8-
9-
# Distribution / packaging
10-
.Python
11-
build/
12-
develop-eggs/
13-
dist/
14-
downloads/
15-
eggs/
16-
.eggs/
17-
lib/
18-
lib64/
19-
parts/
20-
sdist/
21-
var/
22-
wheels/
23-
share/python-wheels/
24-
*.egg-info/
25-
.installed.cfg
26-
*.egg
27-
MANIFEST
28-
29-
# PyInstaller
30-
# Usually these files are written by a python script from a template
31-
# before PyInstaller builds the exe, so as to inject date/other infos into it.
32-
*.manifest
33-
*.spec
34-
35-
# Installer logs
36-
pip-log.txt
37-
pip-delete-this-directory.txt
38-
39-
# Unit test / coverage reports
40-
htmlcov/
41-
.tox/
42-
.nox/
43-
.coverage
44-
.coverage.*
45-
.cache
46-
nosetests.xml
47-
coverage.xml
48-
*.cover
49-
*.py,cover
50-
.hypothesis/
51-
.pytest_cache/
52-
cover/
53-
54-
# Translations
55-
*.mo
56-
*.pot
57-
58-
# Django stuff:
59-
*.log
60-
local_settings.py
61-
db.sqlite3
62-
db.sqlite3-journal
63-
64-
# Flask stuff:
65-
instance/
66-
.webassets-cache
67-
68-
# Scrapy stuff:
69-
.scrapy
70-
71-
# Sphinx documentation
72-
docs/_build/
73-
74-
# PyBuilder
75-
.pybuilder/
76-
target/
77-
78-
# Jupyter Notebook
79-
.ipynb_checkpoints
80-
81-
# IPython
82-
profile_default/
83-
ipython_config.py
84-
85-
# pyenv
86-
# For a library or package, you might want to ignore these files since the code is
87-
# intended to run in multiple environments; otherwise, check them in:
88-
# .python-version
89-
90-
# pipenv
91-
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92-
# However, in case of collaboration, if having platform-specific dependencies or dependencies
93-
# having no cross-platform support, pipenv may install dependencies that don't work, or not
94-
# install all needed dependencies.
95-
#Pipfile.lock
96-
97-
# poetry
98-
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
99-
# This is especially recommended for binary packages to ensure reproducibility, and is more
100-
# commonly ignored for libraries.
101-
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102-
#poetry.lock
103-
104-
# pdm
105-
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
106-
#pdm.lock
107-
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
108-
# in version control.
109-
# https://pdm.fming.dev/#use-with-ide
110-
.pdm.toml
111-
112-
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
113-
__pypackages__/
114-
115-
# Celery stuff
116-
celerybeat-schedule
117-
celerybeat.pid
118-
119-
# SageMath parsed files
120-
*.sage.py
121-
122-
# Environments
123-
.env
1241
.venv
125-
env/
126-
venv/
127-
ENV/
128-
env.bak/
129-
venv.bak/
130-
131-
# Spyder project settings
132-
.spyderproject
133-
.spyproject
134-
135-
# Rope project settings
136-
.ropeproject
137-
138-
# mkdocs documentation
139-
/site
140-
141-
# mypy
142-
.mypy_cache/
143-
.dmypy.json
144-
dmypy.json
145-
146-
# Pyre type checker
147-
.pyre/
148-
149-
# pytype static type analyzer
150-
.pytype/
151-
152-
# Cython debug symbols
153-
cython_debug/
154-
155-
# PyCharm
156-
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
157-
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
158-
# and can be added to the global gitignore or merged into this file. For a more nuclear
159-
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
160-
#.idea/
1612
.DS_Store
3+
.venv
4+
.mypy_cache
5+
/dist/
6+
/ga4_data_import.egg-info/

Makefile

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
11
.PHONY: docs
2+
3+
env:
4+
pip install -q -r requirements.txt
5+
pip install -q -r requirements-dev.txt
6+
7+
lint:
8+
pylint ga4_data_import/
9+
black .
10+
flake8 --extend-ignore F401,E501 ga4_data_import/
11+
yamllint -d relaxed .
12+
mypy .
13+
isort .
14+
15+
build:
16+
make docs
17+
python -m build
18+
219
docs:
320
pydoc-markdown

README.md

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,16 @@
22

33
Google Analytics 4 Data Import pipeline using Google Cloud Platform.
44

5-
## Import source - BigQuery / Cloud Storage / SFTP
5+
Deploy the data import pipeline with the notebook:
6+
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/max-ostapenko/ga4_data_import/blob/main/notebook.ipynb)
67

7-
<!-- markdownlint-disable-next-line MD033 -->
8-
<a href="https://colab.research.google.com/github/max-ostapenko/ga4_data_import/blob/main/scripts/GA4_Data_Import.ipynb" target="_parent"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a>
8+
Read more on [the project page](http://maxostapenko.com/projects/google_analytics_4_data_import/)
9+
and [the blog post](http://maxostapenko.com/posts/google_analytics_4_data_import/).
910

10-
Google Colab is an easy to start thanks to its visual interface and Google-ready environment.
11+
## Usage
1112

12-
Open it and follow the instructions to get a pipeline running within a minute.
13+
```shell
14+
pip install ga4-data-import
15+
```
1316

14-
### Pipeline diagram:
15-
16-
<!-- markdownlint-disable-next-line MD033 -->
17-
![diagram](https://raw.githubusercontent.com/max-ostapenko/ga4_data_import/main/static/GCS_to_GA4%20Data%20Import%20pipeline.png)
18-
19-
20-
## [Module documentation](https://github.com/max-ostapenko/ga4_data_import/blob/main/docs/index.md)
17+
[Module reference](https://github.com/max-ostapenko/ga4_data_import/blob/main/docs/index.md)

0 commit comments

Comments
 (0)