Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New module structure #22

Merged
merged 77 commits into from
Sep 27, 2023
Merged

New module structure #22

merged 77 commits into from
Sep 27, 2023

Conversation

matheusfelipeog
Copy link
Owner

@matheusfelipeog matheusfelipeog commented Sep 27, 2023

Improvements

Define and implement new module structure:

  • new scraper module;
  • new world module for public api;
  • get home page counters, like in the old api, but now having a special data class;
  • get population and geography data;
  • add some tests;
  • set new dependencies.

Mapped pages

All counter classes, with the exception of WorldCounters, are now
dataclasses and are encapsulated within WorldCounters.

This will make it easier to manage the data state without having
to render the page in every instance.
changes:

- HTTPRequester -> Browser. This makes a lot more sense as the class
doesn't just perform http requests.

- Removal of base_url and timeout attributes. Both will be sent to the
get_page_content method.

- Separation of the responsibilities of rendering and executing a script
injected into an html page for the render_page and run_js_script methods.
changes:
- new_headers arg to new_column_names
- upd type hint of new_column_names arg from nested list to nested tuple
regions:
    Asia
    Africa
    Europe
    Latin American And The Caribbean
    Northern American
    Oceania
Implemented APIs to get countries from all regions of the world:
    - World Countries;
    - Asia Countries;
    - Africa Countries;
    - Europe Countries;
    - Latin American And The Caribbean Countries;
    - Northern American Countries;
    - Oceania Countries.
@matheusfelipeog matheusfelipeog added enhancement New feature or request dependencies Pull requests that update a dependency file labels Sep 27, 2023
@matheusfelipeog matheusfelipeog changed the base branch from master to dev September 27, 2023 06:54
@matheusfelipeog matheusfelipeog merged commit 72fc9ab into dev Sep 27, 2023
1 check passed
@matheusfelipeog matheusfelipeog deleted the feat/new-module-structure branch September 27, 2023 06:59
matheusfelipeog added a commit that referenced this pull request Oct 25, 2023
## Added

- **New module structure (#22)**
   - new scraper module;
   - new world module for public api;
   - get home page counters, like in the old api, but now having a special data class;
   - get population and geography data;
   - set new dependencies;
   - new mapped pages;
   - add some tests.
- **Add docstrings to the new api (#23)**
- **Define explicit fields in all counter dataclasses (#26)**

## Changed

- **Reformulation of all docs (#24)**
   - new fully documented API;
   - new package logo and icon.
 - **Use the new API in the old core module. This is a temporary measure until the module is completely removed. (#25)**
    - warn about the deprecation of the old API and indicate the use of the new one.
- **Update all project metadata (#27)**
- **Change package manager and add action to run tests (#29)**
- **Support only Python `>=3.9, <3.12` (#29)**

## Removed

- **Removed support for Python 3.7 and 3.8 (#29)**

## Deprecated

- **`worldometer.core` and `worldometer.api` deprecated (#25)**

## Fixed

- **Fix old API (#25)**
   - fix: import "requests_html" could not be resolved (#12)
   - fix: problem with Importing and Crashing (#13)
   - fix: issue with "sanitize_metrics" method (#18)
   - fix: navigation Timeout Exceeded Error (#20)
   - fix: import error (#21)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant