diff --git a/scripts/badges.py b/scripts/badges.py
index 663423362..966b66f7e 100755
--- a/scripts/badges.py
+++ b/scripts/badges.py
@@ -99,6 +99,47 @@ def get_latest_release_aider_percentage():
return 0, "unknown"
+def format_number(number):
+ """
+ Format a large number with K, M, B suffixes with 1 decimal place
+ """
+ if number is None:
+ return "0"
+
+ if number >= 1_000_000_000:
+ return f"{number/1_000_000_000:.1f}B"
+ elif number >= 1_000_000:
+ return f"{number/1_000_000:.1f}M"
+ elif number >= 1_000:
+ return f"{number/1_000:.1f}K"
+ else:
+ return str(number)
+
+
+def generate_badges_md(downloads, stars, aider_percentage):
+ """
+ Generate markdown for badges with updated values
+ """
+ # Format downloads to 1 decimal place with M suffix
+ downloads_formatted = format_number(downloads)
+
+ # Round aider percentage to whole number
+ aider_percent_rounded = round(aider_percentage)
+
+ markdown = f"""
+
+
+
+
"""
+
+ return markdown
+
+
def main():
# Load environment variables from .env file
load_dotenv()
@@ -119,6 +160,9 @@ def main():
default="paul-gauthier/aider",
help="GitHub repository (default: paul-gauthier/aider)",
)
+ parser.add_argument(
+ "--markdown", action="store_true", help="Generate markdown badges block"
+ )
args = parser.parse_args()
# Get API key from args or environment variable (which may be loaded from .env)
@@ -142,6 +186,11 @@ def main():
# Get Aider contribution percentage in latest release
percentage, version = get_latest_release_aider_percentage()
print(f"Aider wrote {percentage:.2f}% of code in the LATEST release ({version})")
+
+ # Generate and print badges markdown
+ badges_md = generate_badges_md(total_downloads, stars, percentage)
+ print("\nBadges markdown:\n")
+ print(badges_md)
if __name__ == "__main__":