Metadata-Version: 2.1
Name: QuestionsParser
Version: 1.0.0
Summary: A Python package for parsing questions from pdf files.
Author: Andrew Yaroshevych
Author-email: ayaroshlvua@gmail.com
License: UNKNOWN
Project-URL: Source Code, https://github.com/andylvua/QuestionsParser
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
License-File: LICENSE

# Questions Parser
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://choosealicense.com/licenses/mit/)
[![PyPI version](https://img.shields.io/pypi/v/QuestionsParser)](https://pypi.org/project/QuestionsParser/)

**This is a simple parser for questions about Java and OOP from PDF files.**

## Usage

1. Install the package with 

```bash
pip install QuestionsParser
```

or using GitHub installation:
```bash
pip install git+https://github.com/andylvua/QuestionsParser
```

2. Parser usage example:

```python
from QuestionsParser import QuestionsParser # import the parser class

parser = QuestionsParser("Questions.pdf") # create an instance of the parser and pass the PDF file with questions
answers = parser.parse_google() # parse the questions and get the answers from Google
answers.write_to_file("Answers.docx") # write the answers to a .docx file
```

> **Note** 
> 
> The parser uses Google to get the answers, so you need to have an active internet connection. 
> The process of getting the answers can take a while, so be patient.


## Options

The parser has several options that can be passed to the constructor and it's methods:

* `remainder_mod` and `questions_range` parameters of `QuestionsParser`.

`remainder_mod` is a tuple of two integers, the remainder and the divisor respectively. 
For example, if `remainder_mod = (2, 5)`, then the parser will parse only the questions 
with the remainder of 2 when divided by 5. Default value is `(0, 1)`, which means that all questions will be parsed.

`questions_range` is a tuple of two integers, the first and the last questions respectively.

```python
QuestionsParser(
    file_path: str,
    remainder_mod: tuple = (0, 1),
    questions_range: tuple = None,
)
```

* `parse_google` method of `QuestionsParser` - `autoparse_answers` parameter. If set to `False`, parser will not parse 
the answers from Google, but will still provide the useful links instead. Default value is `True`.

```python
QuestionsParser.parse_google(
    autoparse_answers: bool = True,
)
```

* `write_to_file` method of `QuestionsParser` - `path_to_file` and `header` parameters. 
`path_to_file` is the path to the file where the answers will be written. 
`header` is the header of the file. Default value is `Answers`. 
This method couldn't be used before calling `parse_google` method.

```python
QuestionsParser.write_to_file(
    path_to_file: str,
    header: str = "Answers",
)
```

> **Note**
> 
> It's recommended to write the answers to a .docx file, as it provides better readability 
> and is more convenient than a .pdf file. However, .pdf files are also supported.

## Example

**Here is an example of the output document:**

<img width="976" alt="image" src="https://user-images.githubusercontent.com/93153950/192847519-960d155a-ce99-4f04-9c13-db5ff670a36a.png">


## License

The [MIT](https://github.com/andylvua/QuestionsParser/blob/main/LICENSE) License (MIT)

Copyright © 2022, Andrew Yaroshevych


