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 @@ [![Unit Tests](https://github.com/datacebo/PyMetrics/actions/workflows/unit.yaml/badge.svg)](https://github.com/datacebo/PyMetrics/actions/workflows/unit.yaml?query=branch%3Amain) [![Slack](https://img.shields.io/badge/Slack-Join%20now!-36C5F0?logo=slack)](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.

+ [![Dev Status](https://img.shields.io/badge/Dev%20Status-5%20--%20Production%2fStable-green)](https://pypi.org/search/?c=Development+Status+%3A%3A+5+-+Production%2FStable) [![Unit Tests](https://github.com/datacebo/PyMetrics/actions/workflows/unit.yaml/badge.svg)](https://github.com/datacebo/PyMetrics/actions/workflows/unit.yaml?query=branch%3Amain) [![Slack](https://img.shields.io/badge/Slack-Join%20now!-36C5F0?logo=slack)](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 @@
- +