# Paper Per Year
A command-line tool to visualize an academic author's publications per year using data from Google Scholar.
## Note
Numbers are not everything and number of published papers is certainly no metric for academic success.
## Installation
You can run this using uvx without installation.
```bash
uvx paper-per-year [OPTIONS] AUTHOR_NAME
```
Alternatively, you can install it using pip.
```bash
[uv] pip install paper-per-year
```
## Usage
```bash
paper-per-year [OPTIONS] AUTHOR_NAME
```
For example:
```bash
# Save plot in current directory with default style
paper-per-year "Adam Dziedzic"
# Save plot in a specific directory with custom style
paper-per-year "Adam Dziedzic" -o ~/Documents/plots --style whitegrid --context poster
```

The command will:
1. Search for authors matching the provided name
2. Display a list of found authors with their affiliations
3. Prompt you to select the correct author
4. Generate a beautiful PDF plot showing the number of publications per year
5. Save the plot as `Author_Name.pdf` in the specified directory
6. Output year-count data to stdout for potential piping
### Options
- `-o, --output-dir`: Directory to save the output PDF (default: current directory)
- `--style`: Plot style (choices: darkgrid, whitegrid, dark, white, ticks; default: darkgrid)
- `--context`: Plot scaling context (choices: paper, notebook, talk, poster; default: talk)
### Plot Features
- Beautiful Seaborn-styled visualizations
- Publication counts displayed on top of each bar
- Automatically adjusted layout and spacing
- High-resolution output (300 DPI)
- Multiple style options for different use cases
### Output Format
The command outputs the year-count data to stdout in a tab-separated format:
```
YEAR COUNT
2020 5
2021 3
2022 7
...
```
This allows for easy piping to other commands, for example:
```bash
# Get total publication count
paper-per-year "Adam Dziedzic" | awk '{sum += $2} END {print sum}'
# Find the most productive year
paper-per-year "Adam Dziedzic" | sort -k2 -nr | head -n1
```
## Requirements
- Python 3.13 or higher
- scholarly
- numpy
- matplotlib
- seaborn
- click
Raw data
{
"_id": null,
"home_page": null,
"name": "paper-per-year",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.13",
"maintainer_email": null,
"keywords": "publications, scholar, visualization",
"author": null,
"author_email": "Dariush Wahdany <dariushwahdany@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/5c/f7/5c6dacba9c791e2a2c5f957d58db38990cd11b9a88f9bce1cefdf9c32dd7/paper_per_year-0.1.4.tar.gz",
"platform": null,
"description": "# Paper Per Year\n\nA command-line tool to visualize an academic author's publications per year using data from Google Scholar.\n\n## Note\nNumbers are not everything and number of published papers is certainly no metric for academic success.\n\n## Installation\n\nYou can run this using uvx without installation.\n\n```bash\nuvx paper-per-year [OPTIONS] AUTHOR_NAME\n```\n\nAlternatively, you can install it using pip.\n\n```bash\n[uv] pip install paper-per-year\n```\n\n## Usage\n\n```bash\npaper-per-year [OPTIONS] AUTHOR_NAME\n```\n\nFor example:\n```bash\n# Save plot in current directory with default style\npaper-per-year \"Adam Dziedzic\"\n\n# Save plot in a specific directory with custom style\npaper-per-year \"Adam Dziedzic\" -o ~/Documents/plots --style whitegrid --context poster\n```\n\n\n\n\n\n\nThe command will:\n1. Search for authors matching the provided name\n2. Display a list of found authors with their affiliations\n3. Prompt you to select the correct author\n4. Generate a beautiful PDF plot showing the number of publications per year\n5. Save the plot as `Author_Name.pdf` in the specified directory\n6. Output year-count data to stdout for potential piping\n\n### Options\n\n- `-o, --output-dir`: Directory to save the output PDF (default: current directory)\n- `--style`: Plot style (choices: darkgrid, whitegrid, dark, white, ticks; default: darkgrid)\n- `--context`: Plot scaling context (choices: paper, notebook, talk, poster; default: talk)\n\n### Plot Features\n\n- Beautiful Seaborn-styled visualizations\n- Publication counts displayed on top of each bar\n- Automatically adjusted layout and spacing\n- High-resolution output (300 DPI)\n- Multiple style options for different use cases\n\n### Output Format\n\nThe command outputs the year-count data to stdout in a tab-separated format:\n```\nYEAR COUNT\n2020 5\n2021 3\n2022 7\n...\n```\n\nThis allows for easy piping to other commands, for example:\n```bash\n# Get total publication count\npaper-per-year \"Adam Dziedzic\" | awk '{sum += $2} END {print sum}'\n\n# Find the most productive year\npaper-per-year \"Adam Dziedzic\" | sort -k2 -nr | head -n1\n```\n\n## Requirements\n\n- Python 3.13 or higher\n- scholarly\n- numpy\n- matplotlib\n- seaborn\n- click\n",
"bugtrack_url": null,
"license": "CC-BY-SA-4.0",
"summary": "Generate publication per year plots for academic authors",
"version": "0.1.4",
"project_urls": {
"Homepage": "https://github.com/dwahdany/paper-per-year",
"Repository": "https://github.com/dwahdany/paper-per-year.git"
},
"split_keywords": [
"publications",
" scholar",
" visualization"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "959e3395e07b3575966a3c4dd1eaea8fb165d39fd09552eb1b0b128cb9a0ab4b",
"md5": "da3a5f4e1814f006d8c05b16b8725dbd",
"sha256": "5ede2c116ad6362532ea6d1c47080a15e709221878406ec11c57a586a21e1251"
},
"downloads": -1,
"filename": "paper_per_year-0.1.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "da3a5f4e1814f006d8c05b16b8725dbd",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.13",
"size": 5594,
"upload_time": "2025-02-18T13:28:02",
"upload_time_iso_8601": "2025-02-18T13:28:02.927804Z",
"url": "https://files.pythonhosted.org/packages/95/9e/3395e07b3575966a3c4dd1eaea8fb165d39fd09552eb1b0b128cb9a0ab4b/paper_per_year-0.1.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5cf75c6dacba9c791e2a2c5f957d58db38990cd11b9a88f9bce1cefdf9c32dd7",
"md5": "4f58f261b10adb1515c2de7753802d20",
"sha256": "d966c43050d56eaa9034e547b7a594f0b865c4fe965b4337237483777ae95ede"
},
"downloads": -1,
"filename": "paper_per_year-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "4f58f261b10adb1515c2de7753802d20",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.13",
"size": 49321,
"upload_time": "2025-02-18T13:28:05",
"upload_time_iso_8601": "2025-02-18T13:28:05.698107Z",
"url": "https://files.pythonhosted.org/packages/5c/f7/5c6dacba9c791e2a2c5f957d58db38990cd11b9a88f9bce1cefdf9c32dd7/paper_per_year-0.1.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-18 13:28:05",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dwahdany",
"github_project": "paper-per-year",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "paper-per-year"
}