From 0a4c2dee9d37cfda112336d473e5b055f492d461 Mon Sep 17 00:00:00 2001
From: Gaurav Sheni
Date: Thu, 31 Jul 2025 11:29:05 -0400
Subject: [PATCH 1/4] add logos
---
README.md | 13 ++++++++++---
docs/images/datacebo-logo.png | Bin 0 -> 14634 bytes
docs/images/pymetrics-logo.png | Bin 0 -> 18636 bytes
3 files changed, 10 insertions(+), 3 deletions(-)
create mode 100644 docs/images/datacebo-logo.png
create mode 100644 docs/images/pymetrics-logo.png
diff --git a/README.md b/README.md
index dc60e50..7708bb3 100644
--- a/README.md
+++ b/README.md
@@ -8,17 +8,24 @@
[](https://github.com/datacebo/PyMetrics/actions/workflows/unit.yaml?query=branch%3Amain)
[](https://bit.ly/sdv-slack-invite)
+
-# PyMetrics
+
+
+
+
+
+
+---
+
The PyMetrics project allows you to extract download metrics for Python libraries published on [PyPI](https://pypi.org/) and [Anaconda](https://www.anaconda.com/).
The DataCebo team uses these scripts to report download counts for the libraries in the [SDV ecosystem](https://sdv.dev/) and other libraries.
diff --git a/docs/images/datacebo-logo.png b/docs/images/datacebo-logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..8a4359d35c65ff7e8b3133ebfea532fb005cae6a
GIT binary patch
literal 14634
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
literal 0
HcmV?d00001
diff --git a/docs/images/pymetrics-logo.png b/docs/images/pymetrics-logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..d9deb7a5a00858f64695c0c567ac6157cf3d8998
GIT binary patch
literal 18636
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
FCIEBAX;J_H
literal 0
HcmV?d00001
From 9defcea3ebb47af554fc0c7ea69c48294928752a Mon Sep 17 00:00:00 2001
From: Gaurav Sheni
Date: Thu, 31 Jul 2025 11:31:22 -0400
Subject: [PATCH 2/4] fix size
---
README.md | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/README.md b/README.md
index 7708bb3..7412ca7 100644
--- a/README.md
+++ b/README.md
@@ -4,23 +4,25 @@
An open source project by Engineering at DataCebo.
+
[](https://pypi.org/search/?c=Development+Status+%3A%3A+5+-+Production%2FStable)
[](https://github.com/datacebo/PyMetrics/actions/workflows/unit.yaml?query=branch%3Amain)
[](https://bit.ly/sdv-slack-invite)
-
+
-
-
+
From 9ba05047f6d3848139f6e335b6da6809ffcc89d5 Mon Sep 17 00:00:00 2001
From: Gaurav Sheni
Date: Thu, 31 Jul 2025 11:35:00 -0400
Subject: [PATCH 3/4] use links
---
README.md | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index 7412ca7..eb31d6c 100644
--- a/README.md
+++ b/README.md
@@ -12,9 +12,10 @@
@@ -22,8 +23,8 @@
-
-
+

+
---
From d5d1f3a9536bd7b1801264892d0285a39f3527a0 Mon Sep 17 00:00:00 2001
From: Gaurav Sheni
Date: Thu, 31 Jul 2025 11:36:30 -0400
Subject: [PATCH 4/4] fix img
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index eb31d6c..947c1ec 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@
@@ -23,7 +23,7 @@
-
+