From 03d2b15879b092e0469b7f21abd9181d0c417d22 Mon Sep 17 00:00:00 2001 From: Gantavya Date: Wed, 6 Aug 2025 23:03:27 +0530 Subject: [PATCH 1/3] test done --- pyproject.toml | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 564ad75..b39b1a2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "devDocs" -version = "2.0.3" +version = "2.0.5" description = "AI-powered CLI tool that builds professional '*.md' documentation files of a project for internal teams using the Google Gemini API." readme = "README.md" requires-python = ">=3.8" diff --git a/setup.py b/setup.py index 3facbfd..aa820dd 100644 --- a/setup.py +++ b/setup.py @@ -1,2 +1,2 @@ from setuptools import setup,find_packages as A -setup(name='devDocs',version='2.0.3',packages=A(),install_requires=['google-generativeai'],entry_points={'console_scripts':['devDocs=devDocs.cli:x']},author='Gantavya Bansal',description="Auto-generate Project's markdown documentation using Gemini AI for Internal teams.",long_description=open('README.md',encoding='utf-8').read(),long_description_content_type='text/markdown',license='MIT',python_requires='>=3.8',classifiers=['Programming Language :: Python :: 3','License :: OSI Approved :: MIT License']) \ No newline at end of file +setup(name='devDocs',version='2.0.5',packages=A(),install_requires=['google-generativeai'],entry_points={'console_scripts':['devDocs=devDocs.cli:x']},author='Gantavya Bansal',description="Auto-generate Project's markdown documentation using Gemini AI for Internal teams.",long_description=open('README.md',encoding='utf-8').read(),long_description_content_type='text/markdown',license='MIT',python_requires='>=3.8',classifiers=['Programming Language :: Python :: 3','License :: OSI Approved :: MIT License']) \ No newline at end of file From 93aeaafe337e181a5cd7c19ff48472161687695a Mon Sep 17 00:00:00 2001 From: Gantavya Date: Wed, 6 Aug 2025 23:07:32 +0530 Subject: [PATCH 2/3] pkg v-2.0.6 --- devDocs.egg-info/PKG-INFO | 174 ++++++++++------------------ dist/devdocs-2.0.3-py3-none-any.whl | Bin 7666 -> 0 bytes dist/devdocs-2.0.3.tar.gz | Bin 7681 -> 0 bytes dist/devdocs-2.0.6-py3-none-any.whl | Bin 0 -> 7029 bytes dist/devdocs-2.0.6.tar.gz | Bin 0 -> 7032 bytes pyproject.toml | 2 +- setup.py | 2 +- 7 files changed, 66 insertions(+), 112 deletions(-) delete mode 100644 dist/devdocs-2.0.3-py3-none-any.whl delete mode 100644 dist/devdocs-2.0.3.tar.gz create mode 100644 dist/devdocs-2.0.6-py3-none-any.whl create mode 100644 dist/devdocs-2.0.6.tar.gz diff --git a/devDocs.egg-info/PKG-INFO b/devDocs.egg-info/PKG-INFO index 34b3ee3..9c82352 100644 --- a/devDocs.egg-info/PKG-INFO +++ b/devDocs.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: devDocs -Version: 2.0.3 +Version: 2.0.6 Summary: AI-powered CLI tool that builds professional '*.md' documentation files of a project for internal teams using the Google Gemini API. Author: Gantavya Bansal Author-email: Gantavya Bansal @@ -34,21 +34,21 @@ Dynamic: requires-python --- -# PKG NAMEπŸ“˜: `devDocs` – AI-powered automated project documentation writer +# πŸ“˜ `devDocs` – AI-Powered README Generator -`devDocs` is a **command-line tool** that automatically creates high-quality `README.md` files by analyzing your project’s **folder structure**, **source code**, and any existing documentation. It uses the **Google Gemini API** to generate clear, structured, and professional Markdown documentation. +`devDocs` is a command-line tool that automatically generates clean, professional `README.md` files by analyzing your **project structure**, **source code**, and any **existing documentation**. -Perfect for: +Powered by the **Google Gemini API**, it's ideal for: -* Open-source contributors πŸ’‘ -* Developers maintaining internal tools πŸ› οΈ -* Hackathon projects needing clean docs fast πŸš€ +* πŸ’‘ Open-source contributors +* πŸ› οΈ Internal dev tools +* πŸš€ Hackathon projects needing docs fast --- -## πŸ“‚ Example Project Structure +## πŸ“‚ Example Project Layout -Here’s how your project might look before and after using `devDocs`: +Before and after running `devDocs`: ```bash your-project/ @@ -58,30 +58,29 @@ your-project/ β”œβ”€β”€ tests/ β”œβ”€β”€ requirements.txt β”œβ”€β”€ LICENSE -└── README.md <-- Generated/Overwritten by devDocs +β”œβ”€β”€ docs/ # ← Generated by devDocs +└── README.md # ← Overwritten by devDocs (if chosen) ``` --- -## βš™οΈ How It Works (Behind the Scenes) +## βš™οΈ How It Works -Here's what happens when you run `devDocs`: +1. **Scans** project directory and source files +2. **Parses** content (code, comments, old README) +3. **Generates** documentation via Google Gemini +4. **Saves** output in Markdown format -1. **Scans your project** – Analyzes directory structure, code files, and existing README files. -2. **Parses content** – Gathers code and documentation from each relevant file/folder. -3. **Generates documentation** – Sends context to Google Gemini API to craft a structured `README.md`. -4. **Saves output** – Writes the generated Markdown into your project (or into a custom output folder). +### Optional Features -πŸ” Optional features: - -* Preserves your original README unless you use `--overwrite`. -* Includes/excludes specific files or folders with filters. +* Preserve existing README (unless `--overwrite` is set) +* Include/exclude specific files or folders via filters --- ## πŸ“¦ Installation -Install from PyPI: +Install via pip: ```bash pip install devDocs @@ -91,128 +90,84 @@ pip install devDocs ## πŸ”‘ Requirements -* **Python 3.8+** -* **Google Gemini API Key** - Get one from [Google AI Studio](https://aistudio.google.com/). +* Python 3.8+ +* Google Gemini API Key (get one at [Google AI Studio](https://aistudio.google.com/)) --- ## πŸš€ Usage -Inside the root folder of your project, run: +Run inside your project’s root: ```bash devDocs [OPTIONS] ``` -The CLI will prompt for your **Google Gemini API key**. Paste it once when asked. +Paste your **Gemini API key** when prompted. ### CLI Options -| Option | Description | -| --------------- | ------------------------------------------------------------- | -| `--path` | Root path to scan (default: current directory) | -| `--name` | Project name to display in the README | -| `--description` | Short description for the project | -| `--authors` | Comma-separated list of authors | -| `--keywords` | Comma-separated list of keywords (e.g., cli, docs, auto) | -| `--overwrite` | Overwrite existing `README.md` files (default: False) | -| `--output` | Output folder to save generated docs (default: `docs/`) | -| `--exclude` | Comma-separated folders/files/extensions to **exclude** | -| `--include` | Comma-separated folders/files/extensions to **force include** | +| Option | Description | +| --------------- | ------------------------------------------------- | +| `--path` | Root folder to scan (default: `.`) | +| `--name` | Project name to display in the README | +| `--description` | Short project summary | +| `--authors` | Comma-separated list of authors | +| `--keywords` | Comma-separated keywords (e.g., cli, docs, ai) | +| `--overwrite` | Overwrite existing `README.md` (default: False) | +| `--output` | Output folder (default: `docs/`) | +| `--exclude` | Comma-separated paths/extensions to exclude | +| `--include` | Comma-separated paths/extensions to force include | --- -### βœ… Example Command +### βœ… Example ```bash devDocs --path . \ --name "Cool Dev Tool" \ --description "Generate AI-based READMEs effortlessly" \ --authors "Gantavya Bansal" \ - --keywords "cli, docs, automation, openai" \ + --keywords "cli, docs, automation" \ --output docs \ --overwrite ``` -This will: - -* Walk through all folders from current directory -* Create a `docs/README.md` and other structured markdowns -* Overwrite existing README if one exists - --- -## 🧠 Features - -* βœ… Generates structured, professional `README.md` files automatically -* βœ… Preserves original docs unless `--overwrite` is set -* βœ… Supports **include/exclude** filtering for granular control -* βœ… Smart project tree visualization included in docs -* βœ… Outputs all documentation to a single folder (`--output`) -* βœ… Powered by Google Gemini AI (clean & readable Markdown) - ---- - -## πŸ—οΈ Example Output (Generated) - -Here’s a sample snippet of what the generated README might look like: - -``` -# Cool Dev Tool - -This is a CLI tool for generating clean README.md files using Google Gemini. +## 🧠 Key Features -## Folder Structure -your-project/ -β”œβ”€β”€ src/ -β”‚ β”œβ”€β”€ main.py -β”‚ └── utils.py -β”œβ”€β”€ README.md -... - -## Usage -... -``` +βœ… Auto-generates structured `README.md` +βœ… Respects original files unless `--overwrite` +βœ… Fine-grained include/exclude control +βœ… Generates a visual folder tree +βœ… Clean output in a dedicated `--output` folder +βœ… Backed by Google Gemini for high-quality results --- -## 🧱 Technologies Used +## 🧱 Tech Stack -* `Python 3.8+` +* Python 3.8+ * [`google-genai`](https://pypi.org/project/google-generativeai/) -* `argparse`, `os`, `logging`, `time` – for CLI and system interaction +* Built-in: `argparse`, `os`, `logging`, `time` --- -## 🧰 Developer Notes +## πŸ› οΈ Dev Notes -If you're contributing or extending this project: +### Workflow -### Core Files - -| File | Purpose | -| ------------------ | ----------------------------------------------- | -| `cli.py` | CLI interface + core logic | -| `README.md` | The README template output (can be regenerated) | -| `LookFolder()` | Recursive folder/file scanner | -| `GenerateReadMe()` | Sends data to Gemini and processes results | -| `print_tree()` | Generates folder structure view in tree format | - -### Data Flow - -1. CLI parses args β†’ -2. Filters folders/files β†’ -3. Reads source + existing docs β†’ -4. Calls `GenerateReadMe()` β†’ -5. Writes Markdown to output +``` +CLI args β†’ Filter files β†’ Extract context β†’ Call Gemini β†’ Write docs +``` -### API Instruction Logic (Simplified) +### API Prompt Template ```python system_instruction = ''' -You are Gantavya Bansal, a senior engineer and tech writer. -Generate clean, professional Markdown documentation using code + structure context. +You are Gantavya Bansal, a senior engineer and technical writer. +Generate professional Markdown documentation using context from code and folder structure. Include: - Title - Folder Tree @@ -226,25 +181,24 @@ Include: --- -## ⚠️ Known Limitations +## ⚠️ Limitations -* πŸ“‘ Needs an internet connection for Gemini API -* πŸ” Limited retry logic for failed API calls -* βš™οΈ Include/exclude filters don't yet support regex -* πŸ“„ Only supports `.md` output format +* πŸ“Ά Requires internet (for Gemini API) +* πŸ” Retry logic for failed API calls is minimal +* ❌ Regex not yet supported in filters +* πŸ“„ Only outputs `.md` format (Markdown) --- ## πŸ“œ License -**MIT License** – You’re free to use, modify, and share. -Attribution is appreciated! +Released under the **MIT License**. Use, modify, and share freely β€” attribution appreciated. --- -## πŸ’¬ Contributing +## 🀝 Contribute -Feel free to open issues, suggest improvements, or contribute directly. -Pull requests are always welcome! +Found a bug or have an idea? +Open an issue or submit a PR β€” contributions are always welcome! --- diff --git a/dist/devdocs-2.0.3-py3-none-any.whl b/dist/devdocs-2.0.3-py3-none-any.whl deleted file mode 100644 index bbb55f5684c98d22bc06b55d3ca18df4ea3718e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7666 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 diff --git a/dist/devdocs-2.0.6-py3-none-any.whl b/dist/devdocs-2.0.6-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..b78aab68189c25f9e10eab1de90e3cf584e280fc GIT binary patch literal 7029 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 W4InbgANx^%T^PT#sZILF+y4PQ@U}<* literal 0 HcmV?d00001 diff --git a/dist/devdocs-2.0.6.tar.gz b/dist/devdocs-2.0.6.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..2433e45f7730a52a78e76d8a70dd552ec7338bc1 GIT binary patch literal 7032 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

1qOMQTbiAgo*@dc!( zeMztg7{v{l)6p|y2ieetw>A9VaAb{A9x|NpJ;i~f^2Oo64HUPC}w%-6lO z%PXNU->2?4iR9RQJ}Oz4VJttqg`Ks^6aY){P-uT5vd2J zBsG;+Pmir;=oPSAtfyY`SfG!zA@-jvf1k^67oeu5@}o+Tbp6?0yZ#=qduhDu$Av7w zA$c;vC-8nv@-5&SUqAE?=tY@1HUu31n_mSC0ks8S&!gUl4`}3^Nj?JhN6MM%feVJO z?SFA6DvYi0ZP)WE($5>4EV9hLukcBpKpK#2b8QOPk;al2$kE+)&F$>@v`>QIRWlQPBji-?4qE@v4o?LpHL`7dOJv24g+PQA0q zgb|znG)wokbd{XGp<`xYf>v|;?QHeyd$Gddl*?))I+AQ3iBNMhHxMV*u3ZQc7~hr| z!K24Y=-}VKOpIffMD_6^B3S1$+eTq%*`D&|&OS@0HJMt2u1NMoOH{|h2N4J?YIp8fFaJ2Se!=?{>S)t(vS?2{;Mk_r>O^KLhJHokW zYKCu5ghz=kd|k&(;#C|^T!g%;rhPiscF#YA##|KMmkNy=)%PeK)J#6l+`E=#WStq_ zJftjN7pm$oJPI#KRj0H(HFMK3_a37^o`Z$&s^6vQS&1O{ z?pbXMcq+&RRK5c~!CuwfO*Q0qz4^d|w0OPhefJGJ!81CH|J7wYiw@uo$- z*=~cDWv`%_Wv%0{6k1?*zS+8G3*^Ht-gf?ts)7ofj|{Vzd#9011=UHs2f_k%&w77t z| zOYGn{cg#T&Q)FG_t4$d~>%1@umJo~U6dX5)l%@41cU9ei8|r7rDC<8nLv~+}Tse-Q Y;kY0F{f`jnGXx;_k#-v*Tp}R+7n)iSxBvhE literal 0 HcmV?d00001 diff --git a/pyproject.toml b/pyproject.toml index b39b1a2..324278e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "devDocs" -version = "2.0.5" +version = "2.0.6" description = "AI-powered CLI tool that builds professional '*.md' documentation files of a project for internal teams using the Google Gemini API." readme = "README.md" requires-python = ">=3.8" diff --git a/setup.py b/setup.py index aa820dd..882119b 100644 --- a/setup.py +++ b/setup.py @@ -1,2 +1,2 @@ from setuptools import setup,find_packages as A -setup(name='devDocs',version='2.0.5',packages=A(),install_requires=['google-generativeai'],entry_points={'console_scripts':['devDocs=devDocs.cli:x']},author='Gantavya Bansal',description="Auto-generate Project's markdown documentation using Gemini AI for Internal teams.",long_description=open('README.md',encoding='utf-8').read(),long_description_content_type='text/markdown',license='MIT',python_requires='>=3.8',classifiers=['Programming Language :: Python :: 3','License :: OSI Approved :: MIT License']) \ No newline at end of file +setup(name='devDocs',version='2.0.6',packages=A(),install_requires=['google-generativeai'],entry_points={'console_scripts':['devDocs=devDocs.cli:x']},author='Gantavya Bansal',description="Auto-generate Project's markdown documentation using Gemini AI for Internal teams.",long_description=open('README.md',encoding='utf-8').read(),long_description_content_type='text/markdown',license='MIT',python_requires='>=3.8',classifiers=['Programming Language :: Python :: 3','License :: OSI Approved :: MIT License']) \ No newline at end of file From 0da365f98352c486c9e1971399926409ab8be3f1 Mon Sep 17 00:00:00 2001 From: Gantavya Date: Wed, 6 Aug 2025 23:23:45 +0530 Subject: [PATCH 3/3] fixed setup files --- devDocs.egg-info/PKG-INFO | 2 +- devDocs.egg-info/entry_points.txt | 2 +- dist/devdocs-2.0.6.tar.gz | Bin 7032 -> 0 bytes ...any.whl => devdocs-2.0.7-py3-none-any.whl} | Bin 7029 -> 7028 bytes dist/devdocs-2.0.7.tar.gz | Bin 0 -> 7055 bytes pyproject.toml | 4 ++-- setup.py | 2 +- 7 files changed, 5 insertions(+), 5 deletions(-) delete mode 100644 dist/devdocs-2.0.6.tar.gz rename dist/{devdocs-2.0.6-py3-none-any.whl => devdocs-2.0.7-py3-none-any.whl} (81%) create mode 100644 dist/devdocs-2.0.7.tar.gz diff --git a/devDocs.egg-info/PKG-INFO b/devDocs.egg-info/PKG-INFO index 9c82352..d30d931 100644 --- a/devDocs.egg-info/PKG-INFO +++ b/devDocs.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: devDocs -Version: 2.0.6 +Version: 2.0.7 Summary: AI-powered CLI tool that builds professional '*.md' documentation files of a project for internal teams using the Google Gemini API. Author: Gantavya Bansal Author-email: Gantavya Bansal diff --git a/devDocs.egg-info/entry_points.txt b/devDocs.egg-info/entry_points.txt index 8f786ac..fa5e6cd 100644 --- a/devDocs.egg-info/entry_points.txt +++ b/devDocs.egg-info/entry_points.txt @@ -1,2 +1,2 @@ [console_scripts] -devDocs = devDocs.cli:x +devDocs = devDocs.cli:y diff --git a/dist/devdocs-2.0.6.tar.gz b/dist/devdocs-2.0.6.tar.gz deleted file mode 100644 index 2433e45f7730a52a78e76d8a70dd552ec7338bc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7032 zcmaiYRZyG(mn?3;I6@g26u;$1P>702N>krfA4*} zb!)fkR6m?PUDXfgrJFV$17kET-3|$`vi7!ewe;ZP1M`3d!JZcG2xp?d-S@`5o*ZFQki^rv+t zJBj!qQ|3i3ZHzem;a8WCZEG8W6LP<`rQTY^g|(&1xq3A-^SN~oaWPLuH|0KHk98K}KUnP$%ew)}qX z#s2mt>UhRXjwD4B5On1Ry?Js;UL(Vor;aJrA7?_!C4MvZVmg!eT8N{lYJFY!#2vySZso4LsC2>TO(g=fB;8BZS{j z#GK(bclR7?1siIJ!x*CV;f>$G3J_-pdG~_wP;McOZkn7_N>!6;N#2g97C-k=fA537 ze@atWJ~-$$bzkovNb?}I5Aq=2mBXUFVkI^u91VBX>7kb?ivLbhaKn0|k8>w-aG|>p z%}a(RYRV~c5T4KD5>MgySSY|3l{IbYs9@=~~9uO$&zj%ip-5u9;Gy zWsveYM}=a%G{Y$*j3g-)ynDA`zVo{|S^`KB!O_!+2zIS3m=6&h;P838@8Jt!EEa#; zst!aNOj8fvpE3%$Ov}TSE;~|JNxFwAvw~Ho;zoJb2HnEz^4w(J`G^#Z+}5B25mP+3W3cV`}|UqH+vM?uDK?)<)^4*-ec+S`qB|@rgtJ6 z+TCC%GAhJHGQ1jW#donz#W|eH<9apE%5uQoQbqI4Gp1;3ijm9ESrP{4PnVyj)b5t zLFN~5K4R~ehIfM_Azdka4^#xA2=)Uuwpt@}X`Ne2aNeSVHaf#eEQC@O0tBpQ9J(CVM%;%_x!(0-jw-9Ph&=p ztTKaCQ$M0l_r+h8mBQVp`8M81FqRev7Kc01Yz>XTzbGk7b!7jE({fI%pm!rhJpcWSF*- z8=K)k@SE-laDNsW#uJCc4F*>jxbtI+uB3Pb)EZ+^J%UiD=n_6k)^Nxy}l^*K0y?#jrY zkKhUvGpXyaID!zeg%+vQByA-%>6Oq5yg5cB`g5O|#tvE*&W!7^%kZa1g0u2lmGST< z{pXR^fXO8HvPw96xv;`t^oNgw57-G*Hr{?eq*CnYCRKH^?$F3+puiA6zd)Yx0BH25 zrcC;sHhW??A~qls;xZUh8XN)*S5I|UAy}N^hA`<NA08u!`fjhVUZ{=xwB=e`f) zaUrvB@e>ZEW0DZq;-VyC_zr|gO3wn9aVZR=ZZ-@P~q-LMB;)aDW@+Hli{ z8Syd-U-opRMQgzTL(a0^H0^O4!37?qA*$)S`6BX}R0eLr^vU4XA5i!-8c~7|LJvxL zvp88TJyT9@^Te5cdjhA;HA*pd8xPr3y(i{6Ln$U(>Zi;u$b%^6d{40CaQz;Ys~wt+ zoUyQ)Io}C^JX0F<`m&pbougX0qWZ1DXG*6zzMShzyUL+#dq%!FDYJuVZ4Uj0wZebt z)-2Y_(_PcwVwoLOGrOUdzs$$quKZ;+$x4?M94JiBnyC6H$ue5L*2@V&rI0D49^L3#&Z9gi&7BnR>HVO&LK!sQHvk%l zborAw&-0<~*cN9=8-+2{H@TWt8 zFlH;2ci1VNDFswEWOB`yOHFfMY(z$BB%aO3P-w6T@u2rq=Cb_Y!3mLBV=@8*Y^-;d zQ>n4aHdcv-_KRwnux4b5rQ3*O-Q}!>{=^Dg0(QGsKH)3E46t=O*G&PwPS%Y-xmo51 z4VvOSz5psZ9-RFpl z4EkR`SgA;$BH0G}9m0f4#1kmr&C?1^nZCk`pbFVrEeIJ;A*G=*=c7Q!F8OD+?N4|fQnBt&@~6>km|9+ zpSJ=$Uey|bAeL1C1Ue)o%@$icfn4-HyZ%_7P|i~krs#RP>;LqsmvvYRMGOH*v$Aw= z;YC@1|MP_xFt&TF>E&iH1>Bpyb_8CW#k>lS1ILp;dOiZZJ=zAQIq0uN=qk{CASi-k zY~V_MuFCQ@UDb~y_;r}KjD;o`a@;ux)qfZs-0K?oF_sh>-5DPl^njR5EzjuI+;k?> z9F0yVM0E>p5H{-IY6#5ud#9~xeQ-D5H3l}`X%ifR?s?^MycP{!1g7Zu2!1=yR!tOQ-54D%(0IU&EU0PAU@nX$|U?NrJ3)7K{Bc z>vY9+`=x6SP2GG69=yNmI4?OQ)oc;5--q6D-eSb4D9iN8gH3(oISqMBKZ5a*c7kTF z_W9o^ExyI?Y300^Qt!Q7)K#f&vvfbLJadNAxPU^8uQH6i`C@!m@0W$@lX7qgjP+!- zTp@<$qUUKHc`#=6#)!#SCHfhrz}eEzgF-us=S5g%Hu^DB9AU4AvUZv`bNxsuye3sOv(PCRZQgtWYRpt?;kECn`J7Ju5B#4D`)G(jO5Jr?7n z_&Hldn({452Z*<;^XeUxi{IgB&$n|fzGko--}~%}^1v%6;LN`-Uv^0s$i~lPIw{Zr7_uSa(2FeZVko};3D#j8jo*ydn8cpnbk;6Z+CU^5O!V6Chy-`l(BXn@F_p+@=VKc*aM3z zEb(pT526v^1F`y2&FEAIJ7<=I`5}qa(T607Hn&NeyOgZ>#eKgC^VAD8wg`=B;Z3gW zAkYhLFTS42?+lCW$)IQ^X3bLB1dfX`)|I$OS`qhzn;Q?ydda!ls=ns-z41?uzi~kZ zzdf7Y6D#aWIuEUX3&1~lBTOQzg4(Bel|=74CNWj}Csd=0vlNRL>PP%bb>pk?uqUo^ zR*lU2%7R?y5fK4c;LS+FO0HxL0&ZZRimTC{aA%59m?WmhX;01vj(RpH*Po1@pEtu7 zva9$hneM>Nwqi)Ug$NfpbUz?;Iy^=!iHYyw?Ln`>o<2&Dt zkHLGar99lQr5HD4c%49c9f)EG*E{jKbu+Wm(PZ%@a$MD}QzVx?8hj3Br%q=AFv?Tk zlYi;;4DDW?o?ooy6jFy(z7{g7ydy3MQict#({;6;jIXtI^G}xz

zoa#i~Rp%tc z3JNVypqS+cp$6O&gAp;v->lo|OSEfNsPD9rdbxeMMi@p@+;Qlr@xL)lF`&_u_?2xo z|4_auPPDAdgLX!@v*ejS<(2iXKhuC)j;#k@Vx&X8 zJhuFe!(e_0|751~gljgWZI|k#cYhUryLd05nxfgzFnDX-srD0L9!4hUjO{}e{uQ!) zD)#U&xQA|DNx@b~V=2_(D4!&W#b8F*A*sdYLSy(HFA2jXvTHP_Nu*F!!)hL1bj562 z?lZJ{&n>T}pFm}YrXnK-&g??_ZTZ|N9=462M^V;{0@W@@WV2YMB5)Q?wisV)r+r^Q zu3k7NkI`c4KUj#yAJ^_K)65aOi-5M1YS7{xO`?#=<`bo!-*)(2U$LFd@I0p8V)_JG#Kp?VYLvnb})yEVeQ&wN$rJ0_W<)hHo#9}u++Ka_dWJVmi@UHdU10u&#t0&EH zGPR;v@*zfF0Z!!4t2D^8BFz-5lJ;jm135R4XD%l{#6I=3qPbJ)pSHTgwk>6`#0SOB ze+8vPvGQw?NBnp)I4ib~;oy$Lr#(6!+lirIy%H==efdf@mh(cNJC6OGxOvYP&)c1$ z&6ZqfkHJe{xYfSUnVC)t(^Xhg*=YzPs0LSuksf;jtnoDdo@Rg4jd+zRn@Xe0^EX6g`J1h!!HFXYx#{HsyKsGIn{tc6m?#{DSkmb4BE99JNCt(qfOFRjd-q zzF0c>iwEHns*JTW5$-tD-GZItX;BxQI}~sG;7WTVkiQVJ?I5@_gF8?)z=FRi8zXLh zE~)lsBy!GiA#J|nO9*3+FR`2`iio7^Qic9$$y(xm531=GZ#i-ltZUG7$okv9jz`&k zWt|doS#q>_QuR}z*`q$|37m6^R##3TuP_oSjMBVX9;qVkGs$Qh+ zYSp-WYNifl>WsP#D6@*c6+qw;RIfV~t~`+`IvI}_{U%c}<9~$xQ=q72ZagN<-=$Yu z38&s76_N=7f{ zu7sNQfc1Py(H{T56};L-(juvTp@>4kQ`Lb!X;t1358Jor^IcK;O|3M0rIzRV(W_$_ zwXTA7CXS7*-c}Ut&KVWI~dCt(o$`54v}NLu&tjoPBtWHw5w#UdTa4}3(sgMc{r(y=1Od(l=jxzFdmF5 zgmR84o>@60iClXl_(c)7(6|U6ERxGTHGV_JPY4Pfb0aRnj+|2_`fG)~ROuBR9J1Xh z*_&RYTb8S)atbC3Myf@HPx^aE%VZpcx~TnqKd}$RP|Rq#!HNpi_88hBv^nRDuuS+$ zPS!683X1(ud2&0m0woi2?$~hYp4@k)u+E^mu8OiKrrlU?UcMsEaWrukM@mPSqe{&W zz8=<4ejIH{hm_kV&NnB=!V`NX{jn$1RT7Jol+bbJGmc;rzdY>noUFvH9vPUbzx`6p z&p6D!Hu#~sN%^r&)@#_RrR|Om8?CpAd-2!|QWN`;y+SaRMlILQa*sry|2&5%W%f37 zVm65^i{k|!sy&n=6l&-DE1K;Ps(BJAv-cobb;Olg8dxHvXHR(?m`J+k)~iqBCqdY` zoj~Vsm^avZR9_bO!d}LvVx>6FB`9(=d}CYrDN;ICY}{&xU{1#0bpoEV*;BIS`a4kR z+{dx+B%0Ls^zF+Pi>lDhVmH(%>T&EXhwO+GSQ@H7^$uGm z@rWWuu}yWh+#PXL=Ip1Fx-l~_IB;q1Un64RtzcP1qtMG~VTyb3eyjT)Z zl(MLmDwmHuF%`d-=kjuCJaQ=4v1CT3e`Qz76W%ADqy3B*-Cetp+#J+|WaK$IXv1

1qOMQTbiAgo*@dc!( zeMztg7{v{l)6p|y2ieetw>A9VaAb{A9x|NpJ;i~f^2Oo64HUPC}w%-6lO z%PXNU->2?4iR9RQJ}Oz4VJttqg`Ks^6aY){P-uT5vd2J zBsG;+Pmir;=oPSAtfyY`SfG!zA@-jvf1k^67oeu5@}o+Tbp6?0yZ#=qduhDu$Av7w zA$c;vC-8nv@-5&SUqAE?=tY@1HUu31n_mSC0ks8S&!gUl4`}3^Nj?JhN6MM%feVJO z?SFA6DvYi0ZP)WE($5>4EV9hLukcBpKpK#2b8QOPk;al2$kE+)&F$>@v`>QIRWlQPBji-?4qE@v4o?LpHL`7dOJv24g+PQA0q zgb|znG)wokbd{XGp<`xYf>v|;?QHeyd$Gddl*?))I+AQ3iBNMhHxMV*u3ZQc7~hr| z!K24Y=-}VKOpIffMD_6^B3S1$+eTq%*`D&|&OS@0HJMt2u1NMoOH{|h2N4J?YIp8fFaJ2Se!=?{>S)t(vS?2{;Mk_r>O^KLhJHokW zYKCu5ghz=kd|k&(;#C|^T!g%;rhPiscF#YA##|KMmkNy=)%PeK)J#6l+`E=#WStq_ zJftjN7pm$oJPI#KRj0H(HFMK3_a37^o`Z$&s^6vQS&1O{ z?pbXMcq+&RRK5c~!CuwfO*Q0qz4^d|w0OPhefJGJ!81CH|J7wYiw@uo$- z*=~cDWv`%_Wv%0{6k1?*zS+8G3*^Ht-gf?ts)7ofj|{Vzd#9011=UHs2f_k%&w77t z| zOYGn{cg#T&Q)FG_t4$d~>%1@umJo~U6dX5)l%@41cU9ei8|r7rDC<8nLv~+}Tse-Q Y;kY0F{f`jnGXx;_k#-v*Tp}R+7n)iSxBvhE diff --git a/dist/devdocs-2.0.6-py3-none-any.whl b/dist/devdocs-2.0.7-py3-none-any.whl similarity index 81% rename from dist/devdocs-2.0.6-py3-none-any.whl rename to dist/devdocs-2.0.7-py3-none-any.whl index b78aab68189c25f9e10eab1de90e3cf584e280fc..e1f947c42264cd08e57059ff6a9c1d0c56c3daab 100644 GIT binary patch delta 636 zcmexr_Qh<21uw_CKDOvBLB6b$9e5=e%_m3lsxw~L+{pWhLlGoX^6b=`7zPH0Xdspa z;*`{~l>FpkT_ZgMJ@d&^#LB>`Y|mcapazuH0%8peRodeAd^;HeyqQ@-r{F zh|2-(nl7$W53+=%Bg;RIk%2*iiGe{5UAtaNW^svbW?ovpevqrPe~?S*8ShDp3>X+L z)XrDEu&CwyB5}c{1}5G|3-W@P90OD&9a#PBjYE?|^J~~EENf@zytd<9Ict@=%M;}n zr!LEA#c#@bG$G!kdZ#U?N?BfgCqr!WJ!h%d{0rZA%$5o7E~?&Mmhf%j|Nc$8eiat{ zUSrwK%~cta<1Z;!dVk|)$Fgg|RX5(UNBL~M`pWh835TmDf8!_r&u!UhAslMBeplRz zSxvQ77H(=?7qzdM|Jan?E_x^Cd5&w7qxS=^_)`HhZI|4c^XmEC?dm6O+Z7uELhJ7z z>+JpbZ0n?xC&c%KXj^5q8~SZ6JM<>Hzq0B^e7*a%Yy3VEciPq7HR$cN&Ahx_`Qe(Z zUw&`e|6QGJ9kQl>N1D6xCojFL9&tg+Jk%2*iiGe{5UAtaNW^svbW?ovpevqrPe~?S*nUj+i889$h zsIK>35F2qQkPyvE%8R`=*U?&+^`N`|ZsJ~><9qkAZr=W;e#*2z z#}((?zYrUDrnlqMj~S0Ha>S_1id>)Vce2cWLygwkV<%>NFCRihe{Qu(g4>?=eW_N`IQX%%F8 z@OE;LWEUb?JdsobMisY|JQFb9bfk1ZX+%l}EDwtI$+c1-d2Mm&$@`^vKx)o{)%=oD Y;e^NSWOZp(pdw#sMYa%0U<5M&0PSoN6951J diff --git a/dist/devdocs-2.0.7.tar.gz b/dist/devdocs-2.0.7.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..24929b332d9055f5f41ec10d7dcb682e763cc12e GIT binary patch literal 7055 zcmai%RZyG_(4}!F5Q2M<5F~>`aCdhfAV>(ob#M(3T!M$eHMr~G5+u001PRXIGVgv{ z|J~NsZdKR0=sxva^~E`KF<4j$X(@InfVGX6wX>D`2Oba?ND$;<>4tPFw(7P!;`wB+ ze?%v|qKjlN8C6uRLJ`lbHRB@RlFHZ7%+H3ykWDO4A1oJ^+}e<0+>tC=%=X=z?$a(@>%j3Tj;<86^)a(&}eeB1A1nL9|ePo2RH>hqWEnMwS>0P7n4 ziuw6(^L?1Y&x4Ty-A<7ov?^9?{A>`byFhAcssUW$xtb%DjLd)ycb@H1Vh;%Z@C5-Z zguUb>0=Owx-35Pvt`Q)W^{V@My03r~IM08U@bA>IKXIn(^h20~!GY+2K?QryN#Rwu zwviDcIF%m=I<`z;aavVdn_&?p1(VMi&Vzrlo^*(Ttt6>E>Ekn{L9a)wOI+5@Z`L51 zR>yJL#2XhGEzA2(Va%3?4SO?cOLCj=)lfOtrEQe4c5&YQ6Y#2qr1J|c0g+&c-NL0m z$Z*LLWE(hSf_)s$4G#?;HhjPBq)`jI2nEfJFRPP#1wbyKWDtj!TFXh|g{R*(lU*p zbnxGDom`Hby2Y5iQ)04*!_7F`PRuQSKg2Y`9`IZlza>D3aX7Jedj;7x2n!|$*Q5XV z{qU)b@TG-&|2pg^#|xv)Wfk2I%jR;5q5S#)<>!e=8@KZG>9Hbv{OtK9QQ3@=Y3zn0 zFYT8XnC{b;Am#fkol?{)wOvGncB(F;YSG%j2w?cvTJ0)z7KB! zg-sE3giVLCSnf5I?Tc1}lMX(fFbO)1D?BP+v?MK%v=5l11*(lj4{0BHIQ&Pzh~4fYzW2i%vvD$tJd~qk!maz4YA4J+_HCcWuZ1f; zDR5|su~`bs0w0dew=cx-oDCT*b0aQOdwxXYTf42H{IYZcHE6F)Rgto}OLs9~6>Mip zli*Uf*KHXVFjGJ?70XHM@C*7s<>y{eAT(-JvaaaVB6&Fo_c`3u%@%8Mw= z4PGC({lR6at?;`#0Lvp=5xTk$x=Kvs3&84z_)i!O@kPTY0+9kz;*)NJq{J*jpJ3YByy!RT#SEO3 z#o(x5@liYqR@K;Dx}dw8?)pONqjH$?(JP_{WSBaaI4WagrWv%Bkcl#?UMJP23poPw z5V#mujeAE{`;EJqc-mTwBxctFsbAuCo(b1Z86Ev0y>5}IPWbiJm^n6Sq$SVF^bZRS zf>#=pm`}r>jRXm#q%U;&_Jg~3Q1imFRn!ZL$&mY(js>H%=JGyG%X!$XNXul5&fCyvN#N2{ zu6%01uCn~}`-nH@2uB$Taj(X&GBMdvAzcr=NB-YT!HErdg1cC3$?Zlz*`oxsJk!v| znTssoAz5}rObuNn1?)DFxf(U^)okCjbTrEi2`lMMC4jljwc^X`3UtByXi{Jyf=k%x zV<;J%Bxz4bBPoC$J&Ceq4U*)LOWj~8r<~Y{qo7EGQiMOE-AIcTZ_VZ>&wdr!QjKNJ z9ObM>$Ub_>efVwjS*9YSl&74@%(kJF_gkYuGS2eJJ4$(rjIcJ^$A&^7x4l7Io#h05 za^2izi_ptg!RdK?x0qJ^MQFSt0&O&7X-R_)Q2HPFq!?Chsi3!h)_iZ7lgoMT2)bF2 zvlcm{T0MX6;!pI9M}0lOR<#w|DU&7Ar3Ej_*f4wk=F?+RaR@s#LeZh6J@vTfiId$o zIvo3%X^%d3v+^dO{-ns^yHL81z_jc{xi*=HDixklQ5JRam|Oh_#*+IC4}~7f;Xvzk zdwTI?9y2FJFf&sy!8_tDIz+Z@;>S8iGc`S((t`)1o(D~Ixv-Ij{#KD(WA}c4KApDx zYC(+(-$H^FvL%$(skn~Ul6opkTq43k)iTziC?OG37c$wC-`+aUW^AKr<_$&_`yM7_TX6$su=t%CW2*w!@B%x$z1)-?+P1RVU#xliw4~k?VK)u@I>SK z8tDjYW`A%V>;xOV-69^p0x#VPqYA|lrz`T(kR#h6{-&FUeRzN1^Krw zni%Epqu`ljE!A1r;BSBpb?d1UVPFO|1x%)ngYN1P1~f(hdrfuaicQz`9kd#-xm^;g z22u_5E7xSUA53oZ4NS z)&MqF-JPaYy1|!Yso#qK)`NlBEAs@P>kKe7HA5Lw83XRXh!+3z^(chM2rxP-t(OCU z!EBtIx*@=?vH6NL;O=!bHR>>(SYiCMhH$ao{llB#L@4C`rF<77EVGa0742jWtN#f( zB+9R(mOx^wZa0bv%IYAZb+U~-f{)o1bNpw)F@~Lv*+(o@C(}pF-$1^RSFvs?FtAR%&h6eGTB&}}s_B0F)&TgSTN zZ3H5y0H;mcLINL4!L|K%4wZWl1i{}`In;LYk*;QNF~HjkEk2JF%xK5&DGZ~cr`sw2 z+reEeY?%ae;S@Cu>s$LWsrbSkfhYOE) zd5LXyT_7(D($>B?tX?32p(;8C;$G3W5^12WsHd2SXz2w+i_FbQjyj6It;Rx06W!V> zqf^M=`tNKUwi=8yt1(b3(x1b|6)#FedRCb+JQy!tJ%$AOl0?2@-bY#Afg);$_V3HD z=o!XCO{iC-5z>tu9%BS^dflGyT05F@dN@jJK@74>9PMtGi(@K-M=PqcK_bc)@HotK{w9Heq@>j@P`DoMNt2ici zbk%8HJK`Ni-1mN;<~(goJSH#_9QCWjag@vDFRY*FP5Cs#P^z~!@mJn&bfRvtaJaiw zmDJ>Q8LX~(cSQB;>MK&CRgc<_#ELsoj{VCGeuT%kA|!HZ=rET^$T*bf zhEGpJ*uXf(h(TN6Q?yanrvlH9vntKXYmIDX$+CFL8eC~Um4}!pXQ|i}EYPYctu~_@ z=GnTQYCT#FF9%*=rQ~_KZ~B^s-})dO%8qA=RIJNl5^VXZ5HE$pXin53rNin(YurH)kLC2O zZ78Ew6soReJw+%sZ@wk}DX)CjHLIeVL~Wb4` ze3j$zrL1*b>+RGUxq)A#a~i(q5Bx~3csFv|6d$Q5I&Ko(1JL*cCLQ}fX7CdlBL|}Z z2UoGQ=;Roz0LZN6FWZtP_>U{i+kRu@8vuWPw_l>>^-tvBg8&t1W!%e8=Uh= zajff0s=e#fUW^2u0XTDfxFI1yun_viVW|xW%?K4Iac9nv?MC3gYe`^es`Xcb_fZdW zGDc$Wnu9C+dy`gUK)FgFEJnnW~WbuDMvZqD@)nl#3 z5s9kS5oXa#uAP`7ZAmK)vDueN!j&{De3Jri63fF|Xv&$JEyKn2BH5A&BdpWQ0<5VM z+;%_We2rI$FI%g2w{KiqU?x|TN1EtC9sdqXkSO>CLd2BXwBIAF?w`KiKM^7j7>J8| zY*A4E1rF^pAJ*7Zi6qI9mW?Ah5@d?`+r?gQlckvvhH5+4LjU;oAn$Wa!b8@CoumtY z_Ju8`h3?iHtaF9|IzLRu7PUdtC94zKCsA-4?_&W|F6 zcqr&TxPd(muQykp3pR_{reh26P!Dn6-%=fTZ1N~$u{^)f$mbw2IKGeSkwq4R%Khs- zVy!;fZo;~#UhEyl?~W=PL85B@QXM5Be)pb|L->h8?z%wk!7%UB8Gow14s%|l)1}Wb zu5UAES=VII_SYpc(5u9*DRmapR5}w;d##KHEz#{@9NK6c z@u67%BY8eX#w1gzx6&o6o?yvRd=HVS%%hlgz1$;ZFe%l0{o9;b&w@$My+NoE)2wY5 z1mh%2WBIeStddv@n4=_Op?Yt{adt^R5-i*budyZOCDCUAVFp%fd|yrM*^cOWy`{MC zsl+UERYDj2+q$?auvQSeyb<8Bo1VO+xc(POaulPHzey#nLFL6_vH7-?yr+%#wfCW^ z42Pj{!sRr#ccsj+)#$t+)k1ZXfvE@&{;EK0@96KW9B3_w6-fvzu3)1kL_l3B(a8zw*)TuboObJ2CtR z!5MD?wb6wr1%HkoQIqi5DJ%B3TK?U=(@-q`_PqhG94A@nn4} z#HS`uPgnn(lssqTSgJM(S9##DWI4yrSt$_y#IwBOONbE$ULyN)QzJ1iOGBcQt(Z`% z+E{lPon`Jlj;;9lvB&ze0^V3^AeLr@<#@IvpXh1-4|mP-8|ebqXZpG8v=J@w>Fi&P z_@1z#n9Ei$M}jClwyBFeVUzoW#mcq5HY|{2=Eu8wrae+BC}iiML8qiIUzX0g{vzr# zLsyG+fT}Zi`dH9WocXSUfAgjvSJW#B0ZB&K6-jhn5AzZpWD9)od)tY^wECuTdl4$+ zDN-2HgaMnDthAxTC>Zj>i-=?^!RS9- zG8H=@Wv%YFw`?5&6a};CWDOR_!zENcYEdXvn6=sRXCDu*QL7X!`5E2)lvH*Sx}W|X zKzy0r;oLDvN7{{w-#ttb)>5)V3zwGsGkMmF47HrzPz7-DGq*G->M9Qqs zpA9dG8-{!k-nD2*f#j)A|4>#`(50T*a9|M5RvSi!Qyawh2-Jj7PMZkBf}Xms9}*-s z5j9^ngZ_*1=@Q0s9X%V1FXjU0UMj7OpAk8iz-kU)Shj^Q4?xJA1M|B<2~R<(&x=n% zP0t2bK#o7*zbY7@i!7#PR0%qM+B{=EJeN57KjumNCLs3_rV+4N3Om=?yemI{n!5}5 z_kUY&2F)D*S5-73@9baB@3($W?=NusI>D-Ly4`%ZyMeF;;6knjSXUU~xIi&XnTc(* z)ZZdQ(|Amx!N<`#L*t0uc%ujTTkpEFqAv|Le_HKQJTa1iG+fF{e)HFIpNW1&) zdX6bJ%OhzbSAO0XNLT=jf#VCZDxg$p&$}8J`+NB!!9I^(1)MY6=`TK-9|u(dO^C(E zplAeL?$-czIB=!ysS0p%f(#lF-3cx$$s$bIZb?!(WVEWIehD06G&YoRPDXRJdx78mDCzk^`gZTeS zqbu@=bH0a;kDdkZef4Rxux*}%#lKmBF_CQCFOTt;10ox%u8W^$SK3$AXxQL1XHBhs>hwDu z2QP;ouJlKpQ`!o6x*rg6KW6I9zS7bq8*j{(+cO1yHhxc{?Im%GK2T)vLch8Gx8$dh z=+__M3pnYwxy8FPLrJp})W7oQD_vHuo;j0Iy3Mo2o0)4X=O-gOHRB1Pi?qr*6OE;cv@B(m0xHmjoFC+%{g;2!A)(L~BoNV3w z4Qg*Fd_Zfm=EYWJ6y27rbk$ab6cqZ#Lq>uzY3=3.8',classifiers=['Programming Language :: Python :: 3','License :: OSI Approved :: MIT License']) \ No newline at end of file +setup(name='devDocs',version='2.0.7',packages=A(),install_requires=['google-generativeai'],entry_points={'console_scripts':['devDocs=devDocs.cli:y']},author='Gantavya Bansal',description="Auto-generate Project's markdown documentation using Gemini AI for Internal teams.",long_description=open('README.md',encoding='utf-8').read(),long_description_content_type='text/markdown',license='MIT',python_requires='>=3.8',classifiers=['Programming Language :: Python :: 3','License :: OSI Approved :: MIT License']) \ No newline at end of file