harwest2


Nameharwest2 JSON
Version 0.4.1 PyPI version JSON
download
home_pageNone
SummaryHarvest code submissions from different platforms to git
upload_time2025-07-26 01:43:41
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords codeforces competitive programming git ojs
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # πŸ“¦ Harwest2 ⛏

[![PyPI](https://img.shields.io/pypi/v/harwest2.svg)](https://pypi.python.org/pypi/harwest2)
[![Downloads](https://pepy.tech/badge/harwest2)](https://pepy.tech/project/harwest2)
[![PyPI - License](https://img.shields.io/pypi/l/harwest2)](https://github.com/sebascert/harwest/blob/main/LICENSE)

> This project is a maintained fork of
> [harwest](https://github.com/nileshsah/harwest-tool).

**Harwest** takes away the hassle of managing your submission files on different
online-judges by automating the entire process of collecting and organizing your
code submissions in one single Git repository.

Here's a sample repository created using Harwest:
[harwest-sample](https://github.com/sebascert/cp-submissions)

## Highlights

- Fully automated collection of all yours submissions with minimal effort setup
- Simple and easy to use interface to get you started in minutes
- Extensive traceability for your submissions with reference to the problem,
  tags, submission date and more
- Single commit for each submission stamped with the original submission date
  for building rich and accurate contributions graph
- Automated git pushes to the remote repository with every update
- Requires little to no knowledge of operating Git (though would strongly
  recommend learning it)

## Platforms

Harwest currently has extensive support for the following platforms:

<!--- [Codeforces](https://codeforces.com/)-->
<!--- [AtCoder](https://atcoder.jp/) _contributed by-->
<!--  [@s-i-d-d-i-s](https://github.com/s-i-d-d-i-s)_-->

while integration with various other OJs are still in the kitchen. Contributions
are always welcomed.

## Installation

You will require `Python 3.10+` along with `pip3` in order to be able to install
and use Harwest. Refer to the documentation for installing `pip` on
[windows](https://phoenixnap.com/kb/install-pip-windows),
[ubuntu/linux](https://phoenixnap.com/kb/how-to-install-python-3-ubuntu) or
[macOS](https://docs.python-guide.org/starting/install3/osx/)

The package is available at [PyPi](https://pypi.python.org/pypi/harwest2).

Run the following command in the terminal to install the package:

```bash
$ pip3 install harwest2
```

## Getting Started

After installing the package, run the following command in the terminal:

```bash
$ harwest
```

In case you're using Harwest for the first time, you'd be greeted with a set of
configuration steps that you'll have to complete to set up the tool.

- **Step [1]** requires you to select a directory name where all your code
  submissions will be stored. The directory will be created under the same path
  from where you executed the command.

  In case you'd like to set up the directory at some other location then press
  \<Ctrl\>+\<C\> to exit from the setup and execute the command again from your
  desired location.

- **Step [2]** is straight-forward and asks you to enter your full-name and
  email address which will be used for setting up the git repository.

  NOTE: For the contributions to show up in the contributions streak graph, the
  provided email address must be the same as the email address associated with
  your GitHub/BitBucket account

- **Step [3]** though optional, takes away the effort of even pushing the
  changes to the Git repository from you. To take advantage of this feature,
  create an **empty** git repository in [GitHub](https://github.com/new) or
  BitBucket _(without any README, .gitignore or license)_ and copy and paste the
  git remote url as input for this step.

  If you however don't want automated pushes for your repository then leave the
  input as empty and press \<enter\>. You can always push the repository to
  remote manually.

```bash
$ harwest

      __  __                              __
     / / / /___ _______      _____  _____/ /_
    / /_/ / __ `/ ___/ | /| / / _ \/ ___/ __/
   / __  / /_/ / /   | |/ |/ /  __(__  ) /_
  /_/ /_/\__,_/_/    |__/|__/\___/____/\__/

  ==========================================

Hey there! πŸ‘‹ Looks like you're using Harwest for the first time. Let's get you started πŸš€

[1] We'll need to create a directory to store all your files
    The directory will be created as /home/nellex/<your-input>
> So, what would you like your directory to be called? accepted
πŸ‘ Alright, so you're directory will be created at /home/nellex/accepted

[2] Then let's build your author tag which will appear in your Git commits as:
    Author: Steve Jobs <steve.jobs@apple.com>
> So what would your beautiful (Author) Full Name be? Nilesh Sah
> And of course, your magical (Author) Email Address? nilesh.sah13@gmail.com

[3] Guess what? We can automate the Git pushes for you too! πŸŽ‰
   In case you'd like that, then please specify the remote Git Url for an "empty" repository
   It would be somewhat like https://github.com/nileshsah/harwest-tool.git
   But it's optional, in case you'd like to skip then leave it empty and just hit <enter>
> (Optional) So, what would be the remote url for the repository again? https://github.com/nileshsah/accepted.git

 πŸ₯³ You rock! We're all good to go now
```

Once the initial set up is complete, you can then execute the command

```bash
$ harwest <platform>
$ harwest codeforces # example
```

to harvest your submissions from the Codeforces platform. If it's the first time
you're running the command, you'll be prompted for providing your Codeforces
handle name and api credentials

```bash
> So what's your prestigious Codeforces Handle Name? nellex

πŸ” To access the platform's data, we’ll need your API credentials

You can retrieve your API Key and Secret by following this instructions:
πŸ‘‰ https://codeforces.com/apiHelp/

> Could you please enter your API Key?
> And your API Secret?
```

Harwest will then start scraping all your submissions, starting from page 1 till
the very end.

```bash
$ harwest codeforces

      __  __                              __
     / / / /___ _______      _____  _____/ /_
    / /_/ / __ `/ ___/ | /| / / _ \/ ___/ __/
   / __  / /_/ / /   | |/ |/ /  __(__  ) /_
  /_/ /_/\__,_/_/    |__/|__/\___/____/\__/

  ==========================================

⛏ ️Harvesting Codeforces (nellex) Submissions to /home/nellex/accepted
βŒ›  Currently scanning page #1: (24/24) Phoenix and Beauty https://codeforces.com/contest/1348/problem/B
Username for 'https://github.com': nileshsah
Password for 'https://nileshsah@github.com':
πŸ‘Œ The updates were automatically pushed to the remote repository
βœ… The repository was successfully updated!
```

In case scanning stops at any page due to some server side error, you can
restart scraping from the failed page by running the command:

```bash
$ harwest <platform> --start-page N
$ harwest codeforces --start-page 3 # example
```

or instead force Harwest to re-scan the entire submission list for the platform
by running:

```bash
$ harwest <platform> --full-scan
$ harwest codeforces --full-scan # example
```

## Reconfigure

Harwest settings can be reconfigured by running the following command which will
then restart the entire configuration steps.

```bash
$ harwest --init
```

Harwest provides the ability to reuse an existing directory previously created
by this tool for further updates.

To change the handle name for a specific platform, you can run:

```bash
$ harwest <platform> --setup
$ harwest codeforces --setup # example
```

## License

MIT License

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "harwest2",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "Sebastian Certuche <sebascertuche@gmail.com>",
    "keywords": "codeforces, competitive programming, git, ojs",
    "author": null,
    "author_email": "Sebastian Certuche <sebascertuche@gmail.com>, Nsystemilesh Sah <nilesh.sah13@outlook.com>",
    "download_url": "https://files.pythonhosted.org/packages/51/8a/fde727b573df51f0733c6093e09a54ac1bf729a39d68310a1a2d4dc2e15c/harwest2-0.4.1.tar.gz",
    "platform": null,
    "description": "# \ud83d\udce6 Harwest2 \u26cf\n\n[![PyPI](https://img.shields.io/pypi/v/harwest2.svg)](https://pypi.python.org/pypi/harwest2)\n[![Downloads](https://pepy.tech/badge/harwest2)](https://pepy.tech/project/harwest2)\n[![PyPI - License](https://img.shields.io/pypi/l/harwest2)](https://github.com/sebascert/harwest/blob/main/LICENSE)\n\n> This project is a maintained fork of\n> [harwest](https://github.com/nileshsah/harwest-tool).\n\n**Harwest** takes away the hassle of managing your submission files on different\nonline-judges by automating the entire process of collecting and organizing your\ncode submissions in one single Git repository.\n\nHere's a sample repository created using Harwest:\n[harwest-sample](https://github.com/sebascert/cp-submissions)\n\n## Highlights\n\n- Fully automated collection of all yours submissions with minimal effort setup\n- Simple and easy to use interface to get you started in minutes\n- Extensive traceability for your submissions with reference to the problem,\n  tags, submission date and more\n- Single commit for each submission stamped with the original submission date\n  for building rich and accurate contributions graph\n- Automated git pushes to the remote repository with every update\n- Requires little to no knowledge of operating Git (though would strongly\n  recommend learning it)\n\n## Platforms\n\nHarwest currently has extensive support for the following platforms:\n\n<!--- [Codeforces](https://codeforces.com/)-->\n<!--- [AtCoder](https://atcoder.jp/) _contributed by-->\n<!--  [@s-i-d-d-i-s](https://github.com/s-i-d-d-i-s)_-->\n\nwhile integration with various other OJs are still in the kitchen. Contributions\nare always welcomed.\n\n## Installation\n\nYou will require `Python 3.10+` along with `pip3` in order to be able to install\nand use Harwest. Refer to the documentation for installing `pip` on\n[windows](https://phoenixnap.com/kb/install-pip-windows),\n[ubuntu/linux](https://phoenixnap.com/kb/how-to-install-python-3-ubuntu) or\n[macOS](https://docs.python-guide.org/starting/install3/osx/)\n\nThe package is available at [PyPi](https://pypi.python.org/pypi/harwest2).\n\nRun the following command in the terminal to install the package:\n\n```bash\n$ pip3 install harwest2\n```\n\n## Getting Started\n\nAfter installing the package, run the following command in the terminal:\n\n```bash\n$ harwest\n```\n\nIn case you're using Harwest for the first time, you'd be greeted with a set of\nconfiguration steps that you'll have to complete to set up the tool.\n\n- **Step [1]** requires you to select a directory name where all your code\n  submissions will be stored. The directory will be created under the same path\n  from where you executed the command.\n\n  In case you'd like to set up the directory at some other location then press\n  \\<Ctrl\\>+\\<C\\> to exit from the setup and execute the command again from your\n  desired location.\n\n- **Step [2]** is straight-forward and asks you to enter your full-name and\n  email address which will be used for setting up the git repository.\n\n  NOTE: For the contributions to show up in the contributions streak graph, the\n  provided email address must be the same as the email address associated with\n  your GitHub/BitBucket account\n\n- **Step [3]** though optional, takes away the effort of even pushing the\n  changes to the Git repository from you. To take advantage of this feature,\n  create an **empty** git repository in [GitHub](https://github.com/new) or\n  BitBucket _(without any README, .gitignore or license)_ and copy and paste the\n  git remote url as input for this step.\n\n  If you however don't want automated pushes for your repository then leave the\n  input as empty and press \\<enter\\>. You can always push the repository to\n  remote manually.\n\n```bash\n$ harwest\n\n      __  __                              __\n     / / / /___ _______      _____  _____/ /_\n    / /_/ / __ `/ ___/ | /| / / _ \\/ ___/ __/\n   / __  / /_/ / /   | |/ |/ /  __(__  ) /_\n  /_/ /_/\\__,_/_/    |__/|__/\\___/____/\\__/\n\n  ==========================================\n\nHey there! \ud83d\udc4b Looks like you're using Harwest for the first time. Let's get you started \ud83d\ude80\n\n[1] We'll need to create a directory to store all your files\n    The directory will be created as /home/nellex/<your-input>\n> So, what would you like your directory to be called? accepted\n\ud83d\udc4d Alright, so you're directory will be created at /home/nellex/accepted\n\n[2] Then let's build your author tag which will appear in your Git commits as:\n    Author: Steve Jobs <steve.jobs@apple.com>\n> So what would your beautiful (Author) Full Name be? Nilesh Sah\n> And of course, your magical (Author) Email Address? nilesh.sah13@gmail.com\n\n[3] Guess what? We can automate the Git pushes for you too! \ud83c\udf89\n   In case you'd like that, then please specify the remote Git Url for an \"empty\" repository\n   It would be somewhat like https://github.com/nileshsah/harwest-tool.git\n   But it's optional, in case you'd like to skip then leave it empty and just hit <enter>\n> (Optional) So, what would be the remote url for the repository again? https://github.com/nileshsah/accepted.git\n\n \ud83e\udd73 You rock! We're all good to go now\n```\n\nOnce the initial set up is complete, you can then execute the command\n\n```bash\n$ harwest <platform>\n$ harwest codeforces # example\n```\n\nto harvest your submissions from the Codeforces platform. If it's the first time\nyou're running the command, you'll be prompted for providing your Codeforces\nhandle name and api credentials\n\n```bash\n> So what's your prestigious Codeforces Handle Name? nellex\n\n\ud83d\udd10 To access the platform's data, we\u2019ll need your API credentials\n\nYou can retrieve your API Key and Secret by following this instructions:\n\ud83d\udc49 https://codeforces.com/apiHelp/\n\n> Could you please enter your API Key?\n> And your API Secret?\n```\n\nHarwest will then start scraping all your submissions, starting from page 1 till\nthe very end.\n\n```bash\n$ harwest codeforces\n\n      __  __                              __\n     / / / /___ _______      _____  _____/ /_\n    / /_/ / __ `/ ___/ | /| / / _ \\/ ___/ __/\n   / __  / /_/ / /   | |/ |/ /  __(__  ) /_\n  /_/ /_/\\__,_/_/    |__/|__/\\___/____/\\__/\n\n  ==========================================\n\n\u26cf \ufe0fHarvesting Codeforces (nellex) Submissions to /home/nellex/accepted\n\u231b  Currently scanning page #1: (24/24) Phoenix and Beauty https://codeforces.com/contest/1348/problem/B\nUsername for 'https://github.com': nileshsah\nPassword for 'https://nileshsah@github.com':\n\ud83d\udc4c The updates were automatically pushed to the remote repository\n\u2705 The repository was successfully updated!\n```\n\nIn case scanning stops at any page due to some server side error, you can\nrestart scraping from the failed page by running the command:\n\n```bash\n$ harwest <platform> --start-page N\n$ harwest codeforces --start-page 3 # example\n```\n\nor instead force Harwest to re-scan the entire submission list for the platform\nby running:\n\n```bash\n$ harwest <platform> --full-scan\n$ harwest codeforces --full-scan # example\n```\n\n## Reconfigure\n\nHarwest settings can be reconfigured by running the following command which will\nthen restart the entire configuration steps.\n\n```bash\n$ harwest --init\n```\n\nHarwest provides the ability to reuse an existing directory previously created\nby this tool for further updates.\n\nTo change the handle name for a specific platform, you can run:\n\n```bash\n$ harwest <platform> --setup\n$ harwest codeforces --setup # example\n```\n\n## License\n\nMIT License\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Harvest code submissions from different platforms to git",
    "version": "0.4.1",
    "project_urls": {
        "Homepage": "https://github.com/sebascert/harwest",
        "Issues": "https://github.com/sebascert/harwest/issues",
        "Repositoty": "https://github.com/sebascert/harwest.git"
    },
    "split_keywords": [
        "codeforces",
        " competitive programming",
        " git",
        " ojs"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e26515928f6f6b20a7f8b7e56f0435905d356f886903ce258a00d2e8f3480095",
                "md5": "db20c7f7cab89d7fc61ce7773db565ac",
                "sha256": "0c91064923aaf64578420edb9b7daf30b9a1faddcbb12bcad82215f34bb2bb12"
            },
            "downloads": -1,
            "filename": "harwest2-0.4.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "db20c7f7cab89d7fc61ce7773db565ac",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 5243,
            "upload_time": "2025-07-26T01:43:40",
            "upload_time_iso_8601": "2025-07-26T01:43:40.311056Z",
            "url": "https://files.pythonhosted.org/packages/e2/65/15928f6f6b20a7f8b7e56f0435905d356f886903ce258a00d2e8f3480095/harwest2-0.4.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "518afde727b573df51f0733c6093e09a54ac1bf729a39d68310a1a2d4dc2e15c",
                "md5": "b6b65cdbdcc1924a499c33d298e8b38c",
                "sha256": "6f42af7410aeb662eb3792835268ff85c501d12a2b8456ab162f04863b4e5516"
            },
            "downloads": -1,
            "filename": "harwest2-0.4.1.tar.gz",
            "has_sig": false,
            "md5_digest": "b6b65cdbdcc1924a499c33d298e8b38c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 15726,
            "upload_time": "2025-07-26T01:43:41",
            "upload_time_iso_8601": "2025-07-26T01:43:41.513889Z",
            "url": "https://files.pythonhosted.org/packages/51/8a/fde727b573df51f0733c6093e09a54ac1bf729a39d68310a1a2d4dc2e15c/harwest2-0.4.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-26 01:43:41",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sebascert",
    "github_project": "harwest",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "harwest2"
}
        
Elapsed time: 2.12512s