diff --git a/IKEA_scraper/.venv/Lib/site-packages/Eel-0.14.0-py3.9.egg-info/PKG-INFO b/IKEA_scraper/.venv/Lib/site-packages/Eel-0.14.0-py3.9.egg-info/PKG-INFO
index 5f45526f..614d4d3c 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/Eel-0.14.0-py3.9.egg-info/PKG-INFO
+++ b/IKEA_scraper/.venv/Lib/site-packages/Eel-0.14.0-py3.9.egg-info/PKG-INFO
@@ -6,363 +6,6 @@ Home-page: https://github.com/samuelhwilliams/Eel
Author: Chris Knott
Author-email: chrisknott@hotmail.co.uk
License: UNKNOWN
-Description: # Eel
-
- [](https://pypi.org/project/Eel/)
- [](https://pypistats.org/packages/eel)
- 
- [](https://pypi.org/project/Eel/)
-
-
- [](https://lgtm.com/projects/g/samuelhwilliams/Eel/alerts/)
- [](https://lgtm.com/projects/g/samuelhwilliams/Eel/context:javascript)
- [](https://lgtm.com/projects/g/samuelhwilliams/Eel/context:python)
-
-
- Eel is a little Python library for making simple Electron-like offline HTML/JS GUI apps, with full access to Python capabilities and libraries.
-
- > **Eel hosts a local webserver, then lets you annotate functions in Python so that they can be called from Javascript, and vice versa.**
-
- Eel is designed to take the hassle out of writing short and simple GUI applications. If you are familiar with Python and web development, probably just jump to [this example](https://github.com/ChrisKnott/Eel/tree/master/examples/04%20-%20file_access) which picks random file names out of the given folder (something that is impossible from a browser).
-
-
-
-
-
- - [Eel](#eel)
- - [Intro](#intro)
- - [Install](#install)
- - [Usage](#usage)
- - [Directory Structure](#directory-structure)
- - [Starting the app](#starting-the-app)
- - [App options](#app-options)
- - [Chrome/Chromium flags](#chromechromium-flags)
- - [Exposing functions](#exposing-functions)
- - [Eello, World!](#eello-world)
- - [Return values](#return-values)
- - [Callbacks](#callbacks)
- - [Synchronous returns](#synchronous-returns)
- - [Asynchronous Python](#asynchronous-python)
- - [Building distributable binary with PyInstaller](#building-distributable-binary-with-pyinstaller)
- - [Microsoft Edge](#microsoft-edge)
-
-
-
- ## Intro
-
- There are several options for making GUI apps in Python, but if you want to use HTML/JS (in order to use jQueryUI or Bootstrap, for example) then you generally have to write a lot of boilerplate code to communicate from the Client (Javascript) side to the Server (Python) side.
-
- The closest Python equivalent to Electron (to my knowledge) is [cefpython](https://github.com/cztomczak/cefpython). It is a bit heavy weight for what I wanted.
-
- Eel is not as fully-fledged as Electron or cefpython - it is probably not suitable for making full blown applications like Atom - but it is very suitable for making the GUI equivalent of little utility scripts that you use internally in your team.
-
- For some reason many of the best-in-class number crunching and maths libraries are in Python (Tensorflow, Numpy, Scipy etc) but many of the best visualization libraries are in Javascript (D3, THREE.js etc). Hopefully Eel makes it easy to combine these into simple utility apps for assisting your development.
-
- Join Eel's users and maintainers on [Discord](https://discord.com/invite/3nqXPFX), if you like.
-
- ## Install
-
- Install from pypi with `pip`:
-
- ```shell
- pip install eel
- ```
-
- To include support for HTML templating, currently using [Jinja2](https://pypi.org/project/Jinja2/#description):
-
- ```shell
- pip install eel[jinja2]
- ```
-
- ## Usage
-
- ### Directory Structure
-
- An Eel application will be split into a frontend consisting of various web-technology files (.html, .js, .css) and a backend consisting of various Python scripts.
-
- All the frontend files should be put in a single directory (they can be further divided into folders inside this if necessary).
-
- ```
- my_python_script.py <-- Python scripts
- other_python_module.py
- static_web_folder/ <-- Web folder
- main_page.html
- css/
- style.css
- img/
- logo.png
- ```
-
- ### Starting the app
-
- Suppose you put all the frontend files in a directory called `web`, including your start page `main.html`, then the app is started like this;
-
- ```python
- import eel
- eel.init('web')
- eel.start('main.html')
- ```
-
- This will start a webserver on the default settings (http://localhost:8000) and open a browser to http://localhost:8000/main.html.
-
- If Chrome or Chromium is installed then by default it will open in that in App Mode (with the `--app` cmdline flag), regardless of what the OS's default browser is set to (it is possible to override this behaviour).
-
- ### App options
-
- Additional options can be passed to `eel.start()` as keyword arguments.
-
- Some of the options include the mode the app is in (e.g. 'chrome'), the port the app runs on, the host name of the app, and adding additional command line flags.
-
- As of Eel v0.12.0, the following options are available to `start()`:
- - **mode**, a string specifying what browser to use (e.g. `'chrome'`, `'electron'`, `'edge'`, `'custom'`). Can also be `None` or `False` to not open a window. *Default: `'chrome'`*
- - **host**, a string specifying what hostname to use for the Bottle server. *Default: `'localhost'`)*
- - **port**, an int specifying what port to use for the Bottle server. Use `0` for port to be picked automatically. *Default: `8000`*.
- - **block**, a bool saying whether or not the call to `start()` should block the calling thread. *Default: `True`*
- - **jinja_templates**, a string specifying a folder to use for Jinja2 templates, e.g. `my_templates`. *Default: `None`*
- - **cmdline_args**, a list of strings to pass to the command to start the browser. For example, we might add extra flags for Chrome; ```eel.start('main.html', mode='chrome-app', port=8080, cmdline_args=['--start-fullscreen', '--browser-startup-dialog'])```. *Default: `[]`*
- - **size**, a tuple of ints specifying the (width, height) of the main window in pixels *Default: `None`*
- - **position**, a tuple of ints specifying the (left, top) of the main window in pixels *Default: `None`*
- - **geometry**, a dictionary specifying the size and position for all windows. The keys should be the relative path of the page, and the values should be a dictionary of the form `{'size': (200, 100), 'position': (300, 50)}`. *Default: {}*
- - **close_callback**, a lambda or function that is called when a websocket to a window closes (i.e. when the user closes the window). It should take two arguments; a string which is the relative path of the page that just closed, and a list of other websockets that are still open. *Default: `None`*
- - **app**, an instance of Bottle which will be used rather than creating a fresh one. This can be used to install middleware on the
- instance before starting eel, e.g. for session management, authentication, etc.
-
-
-
- ### Exposing functions
-
- In addition to the files in the frontend folder, a Javascript library will be served at `/eel.js`. You should include this in any pages:
-
- ```html
-
- ```
-
- Including this library creates an `eel` object which can be used to communicate with the Python side.
-
- Any functions in the Python code which are decorated with `@eel.expose` like this...
-
- ```python
- @eel.expose
- def my_python_function(a, b):
- print(a, b, a + b)
- ```
-
- ...will appear as methods on the `eel` object on the Javascript side, like this...
-
- ```javascript
- console.log("Calling Python...");
- eel.my_python_function(1, 2); // This calls the Python function that was decorated
- ```
-
- Similarly, any Javascript functions which are exposed like this...
-
- ```javascript
- eel.expose(my_javascript_function);
- function my_javascript_function(a, b, c, d) {
- if (a < b) {
- console.log(c * d);
- }
- }
- ```
-
- can be called from the Python side like this...
-
- ```python
- print('Calling Javascript...')
- eel.my_javascript_function(1, 2, 3, 4) # This calls the Javascript function
- ```
-
- The exposed name can also be overridden by passing in a second argument. If your app minifies JavaScript during builds, this may be necessary to ensure that functions can be resolved on the Python side:
-
- ```javascript
- eel.expose(someFunction, "my_javascript_function");
- ```
-
- When passing complex objects as arguments, bear in mind that internally they are converted to JSON and sent down a websocket (a process that potentially loses information).
-
- ### Eello, World!
-
- > See full example in: [examples/01 - hello_world](https://github.com/ChrisKnott/Eel/tree/master/examples/01%20-%20hello_world)
-
- Putting this together into a **Hello, World!** example, we have a short HTML page, `web/hello.html`:
-
- ```html
-
-
-
- Hello, World!
-
-
-
-
-
-
-
- Hello, World!
-
-
- ```
-
- and a short Python script `hello.py`:
-
- ```python
- import eel
-
- # Set web files folder and optionally specify which file types to check for eel.expose()
- # *Default allowed_extensions are: ['.js', '.html', '.txt', '.htm', '.xhtml']
- eel.init('web', allowed_extensions=['.js', '.html'])
-
- @eel.expose # Expose this function to Javascript
- def say_hello_py(x):
- print('Hello from %s' % x)
-
- say_hello_py('Python World!')
- eel.say_hello_js('Python World!') # Call a Javascript function
-
- eel.start('hello.html') # Start (this blocks and enters loop)
- ```
-
- If we run the Python script (`python hello.py`), then a browser window will open displaying `hello.html`, and we will see...
-
- ```
- Hello from Python World!
- Hello from Javascript World!
- ```
-
- ...in the terminal, and...
-
- ```
- Hello from Javascript World!
- Hello from Python World!
- ```
-
- ...in the browser console (press F12 to open).
-
- You will notice that in the Python code, the Javascript function is called before the browser window is even started - any early calls like this are queued up and then sent once the websocket has been established.
-
- ### Return values
-
- While we want to think of our code as comprising a single application, the Python interpreter and the browser window run in separate processes. This can make communicating back and forth between them a bit of a mess, especially if we always had to explicitly _send_ values from one side to the other.
-
- Eel supports two ways of retrieving _return values_ from the other side of the app, which helps keep the code concise.
-
- To prevent hanging forever on the Python side, a timeout has been put in place for trying to retrieve values from
- the JavaScript side, which defaults to 10000 milliseconds (10 seconds). This can be changed with the `_js_result_timeout` parameter to `eel.init`. There is no corresponding timeout on the JavaScript side.
-
- #### Callbacks
-
- When you call an exposed function, you can immediately pass a callback function afterwards. This callback will automatically be called asynchrounously with the return value when the function has finished executing on the other side.
-
- For example, if we have the following function defined and exposed in Javascript:
-
- ```javascript
- eel.expose(js_random);
- function js_random() {
- return Math.random();
- }
- ```
-
- Then in Python we can retrieve random values from the Javascript side like so:
-
- ```python
- def print_num(n):
- print('Got this from Javascript:', n)
-
- # Call Javascript function, and pass explicit callback function
- eel.js_random()(print_num)
-
- # Do the same with an inline lambda as callback
- eel.js_random()(lambda n: print('Got this from Javascript:', n))
- ```
-
- (It works exactly the same the other way around).
-
- #### Synchronous returns
-
- In most situations, the calls to the other side are to quickly retrieve some piece of data, such as the state of a widget or contents of an input field. In these cases it is more convenient to just synchronously wait a few milliseconds then continue with your code, rather than breaking the whole thing up into callbacks.
-
- To synchronously retrieve the return value, simply pass nothing to the second set of brackets. So in Python we would write:
-
- ```python
- n = eel.js_random()() # This immediately returns the value
- print('Got this from Javascript:', n)
- ```
-
- You can only perform synchronous returns after the browser window has started (after calling `eel.start()`), otherwise obviously the call with hang.
-
- In Javascript, the language doesn't allow us to block while we wait for a callback, except by using `await` from inside an `async` function. So the equivalent code from the Javascript side would be:
-
- ```javascript
- async function run() {
- // Inside a function marked 'async' we can use the 'await' keyword.
-
- let n = await eel.py_random()(); // Must prefix call with 'await', otherwise it's the same syntax
- console.log("Got this from Python: " + n);
- }
-
- run();
- ```
-
- ## Asynchronous Python
-
- Eel is built on Bottle and Gevent, which provide an asynchronous event loop similar to Javascript. A lot of Python's standard library implicitly assumes there is a single execution thread - to deal with this, Gevent can "[monkey patch](https://en.wikipedia.org/wiki/Monkey_patch)" many of the standard modules such as `time`. ~~This monkey patching is done automatically when you call `import eel`~~. If you need monkey patching you should `import gevent.monkey` and call `gevent.monkey.patch_all()` _before_ you `import eel`. Monkey patching can interfere with things like debuggers so should be avoided unless necessary.
-
- For most cases you should be fine by avoiding using `time.sleep()` and instead using the versions provided by `gevent`. For convenience, the two most commonly needed gevent methods, `sleep()` and `spawn()` are provided directly from Eel (to save importing `time` and/or `gevent` as well).
-
- In this example...
-
- ```python
- import eel
- eel.init('web')
-
- def my_other_thread():
- while True:
- print("I'm a thread")
- eel.sleep(1.0) # Use eel.sleep(), not time.sleep()
-
- eel.spawn(my_other_thread)
-
- eel.start('main.html', block=False) # Don't block on this call
-
- while True:
- print("I'm a main loop")
- eel.sleep(1.0) # Use eel.sleep(), not time.sleep()
- ```
-
- ...we would then have three "threads" (greenlets) running;
-
- 1. Eel's internal thread for serving the web folder
- 2. The `my_other_thread` method, repeatedly printing **"I'm a thread"**
- 3. The main Python thread, which would be stuck in the final `while` loop, repeatedly printing **"I'm a main loop"**
-
- ## Building distributable binary with PyInstaller
-
- If you want to package your app into a program that can be run on a computer without a Python interpreter installed, you should use **PyInstaller**.
-
- 1. Configure a virtualenv with desired Python version and minimum necessary Python packages
- 2. Install PyInstaller `pip install PyInstaller`
- 3. In your app's folder, run `python -m eel [your_main_script] [your_web_folder]` (for example, you might run `python -m eel hello.py web`)
- 4. This will create a new folder `dist/`
- 5. Valid PyInstaller flags can be passed through, such as excluding modules with the flag: `--exclude module_name`. For example, you might run `python -m eel file_access.py web --exclude win32com --exclude numpy --exclude cryptography`
- 6. When happy that your app is working correctly, add `--onefile --noconsole` flags to build a single executable file
-
- Consult the [documentation for PyInstaller](http://PyInstaller.readthedocs.io/en/stable/) for more options.
-
- ## Microsoft Edge
-
- For Windows 10 users, Microsoft Edge (`eel.start(.., mode='edge')`) is installed by default and a useful fallback if a preferred browser is not installed. See the examples:
-
- - A Hello World example using Microsoft Edge: [examples/01 - hello_world-Edge/](https://github.com/ChrisKnott/Eel/tree/master/examples/01%20-%20hello_world-Edge)
- - Example implementing browser-fallbacks: [examples/07 - CreateReactApp/eel_CRA.py](https://github.com/ChrisKnott/Eel/tree/master/examples/07%20-%20CreateReactApp/eel_CRA.py)
-
Keywords: gui,html,javascript,electron
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
@@ -379,3 +22,362 @@ Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Provides-Extra: jinja2
+
+# Eel
+
+[](https://pypi.org/project/Eel/)
+[](https://pypistats.org/packages/eel)
+
+[](https://pypi.org/project/Eel/)
+
+
+[](https://lgtm.com/projects/g/samuelhwilliams/Eel/alerts/)
+[](https://lgtm.com/projects/g/samuelhwilliams/Eel/context:javascript)
+[](https://lgtm.com/projects/g/samuelhwilliams/Eel/context:python)
+
+
+Eel is a little Python library for making simple Electron-like offline HTML/JS GUI apps, with full access to Python capabilities and libraries.
+
+> **Eel hosts a local webserver, then lets you annotate functions in Python so that they can be called from Javascript, and vice versa.**
+
+Eel is designed to take the hassle out of writing short and simple GUI applications. If you are familiar with Python and web development, probably just jump to [this example](https://github.com/ChrisKnott/Eel/tree/master/examples/04%20-%20file_access) which picks random file names out of the given folder (something that is impossible from a browser).
+
+
+
+
+
+- [Eel](#eel)
+ - [Intro](#intro)
+ - [Install](#install)
+ - [Usage](#usage)
+ - [Directory Structure](#directory-structure)
+ - [Starting the app](#starting-the-app)
+ - [App options](#app-options)
+ - [Chrome/Chromium flags](#chromechromium-flags)
+ - [Exposing functions](#exposing-functions)
+ - [Eello, World!](#eello-world)
+ - [Return values](#return-values)
+ - [Callbacks](#callbacks)
+ - [Synchronous returns](#synchronous-returns)
+ - [Asynchronous Python](#asynchronous-python)
+ - [Building distributable binary with PyInstaller](#building-distributable-binary-with-pyinstaller)
+ - [Microsoft Edge](#microsoft-edge)
+
+
+
+## Intro
+
+There are several options for making GUI apps in Python, but if you want to use HTML/JS (in order to use jQueryUI or Bootstrap, for example) then you generally have to write a lot of boilerplate code to communicate from the Client (Javascript) side to the Server (Python) side.
+
+The closest Python equivalent to Electron (to my knowledge) is [cefpython](https://github.com/cztomczak/cefpython). It is a bit heavy weight for what I wanted.
+
+Eel is not as fully-fledged as Electron or cefpython - it is probably not suitable for making full blown applications like Atom - but it is very suitable for making the GUI equivalent of little utility scripts that you use internally in your team.
+
+For some reason many of the best-in-class number crunching and maths libraries are in Python (Tensorflow, Numpy, Scipy etc) but many of the best visualization libraries are in Javascript (D3, THREE.js etc). Hopefully Eel makes it easy to combine these into simple utility apps for assisting your development.
+
+Join Eel's users and maintainers on [Discord](https://discord.com/invite/3nqXPFX), if you like.
+
+## Install
+
+Install from pypi with `pip`:
+
+```shell
+pip install eel
+```
+
+To include support for HTML templating, currently using [Jinja2](https://pypi.org/project/Jinja2/#description):
+
+```shell
+pip install eel[jinja2]
+```
+
+## Usage
+
+### Directory Structure
+
+An Eel application will be split into a frontend consisting of various web-technology files (.html, .js, .css) and a backend consisting of various Python scripts.
+
+All the frontend files should be put in a single directory (they can be further divided into folders inside this if necessary).
+
+```
+my_python_script.py <-- Python scripts
+other_python_module.py
+static_web_folder/ <-- Web folder
+ main_page.html
+ css/
+ style.css
+ img/
+ logo.png
+```
+
+### Starting the app
+
+Suppose you put all the frontend files in a directory called `web`, including your start page `main.html`, then the app is started like this;
+
+```python
+import eel
+eel.init('web')
+eel.start('main.html')
+```
+
+This will start a webserver on the default settings (http://localhost:8000) and open a browser to http://localhost:8000/main.html.
+
+If Chrome or Chromium is installed then by default it will open in that in App Mode (with the `--app` cmdline flag), regardless of what the OS's default browser is set to (it is possible to override this behaviour).
+
+### App options
+
+Additional options can be passed to `eel.start()` as keyword arguments.
+
+Some of the options include the mode the app is in (e.g. 'chrome'), the port the app runs on, the host name of the app, and adding additional command line flags.
+
+As of Eel v0.12.0, the following options are available to `start()`:
+ - **mode**, a string specifying what browser to use (e.g. `'chrome'`, `'electron'`, `'edge'`, `'custom'`). Can also be `None` or `False` to not open a window. *Default: `'chrome'`*
+ - **host**, a string specifying what hostname to use for the Bottle server. *Default: `'localhost'`)*
+ - **port**, an int specifying what port to use for the Bottle server. Use `0` for port to be picked automatically. *Default: `8000`*.
+ - **block**, a bool saying whether or not the call to `start()` should block the calling thread. *Default: `True`*
+ - **jinja_templates**, a string specifying a folder to use for Jinja2 templates, e.g. `my_templates`. *Default: `None`*
+ - **cmdline_args**, a list of strings to pass to the command to start the browser. For example, we might add extra flags for Chrome; ```eel.start('main.html', mode='chrome-app', port=8080, cmdline_args=['--start-fullscreen', '--browser-startup-dialog'])```. *Default: `[]`*
+ - **size**, a tuple of ints specifying the (width, height) of the main window in pixels *Default: `None`*
+ - **position**, a tuple of ints specifying the (left, top) of the main window in pixels *Default: `None`*
+ - **geometry**, a dictionary specifying the size and position for all windows. The keys should be the relative path of the page, and the values should be a dictionary of the form `{'size': (200, 100), 'position': (300, 50)}`. *Default: {}*
+ - **close_callback**, a lambda or function that is called when a websocket to a window closes (i.e. when the user closes the window). It should take two arguments; a string which is the relative path of the page that just closed, and a list of other websockets that are still open. *Default: `None`*
+ - **app**, an instance of Bottle which will be used rather than creating a fresh one. This can be used to install middleware on the
+ instance before starting eel, e.g. for session management, authentication, etc.
+
+
+
+### Exposing functions
+
+In addition to the files in the frontend folder, a Javascript library will be served at `/eel.js`. You should include this in any pages:
+
+```html
+
+```
+
+Including this library creates an `eel` object which can be used to communicate with the Python side.
+
+Any functions in the Python code which are decorated with `@eel.expose` like this...
+
+```python
+@eel.expose
+def my_python_function(a, b):
+ print(a, b, a + b)
+```
+
+...will appear as methods on the `eel` object on the Javascript side, like this...
+
+```javascript
+console.log("Calling Python...");
+eel.my_python_function(1, 2); // This calls the Python function that was decorated
+```
+
+Similarly, any Javascript functions which are exposed like this...
+
+```javascript
+eel.expose(my_javascript_function);
+function my_javascript_function(a, b, c, d) {
+ if (a < b) {
+ console.log(c * d);
+ }
+}
+```
+
+can be called from the Python side like this...
+
+```python
+print('Calling Javascript...')
+eel.my_javascript_function(1, 2, 3, 4) # This calls the Javascript function
+```
+
+The exposed name can also be overridden by passing in a second argument. If your app minifies JavaScript during builds, this may be necessary to ensure that functions can be resolved on the Python side:
+
+```javascript
+eel.expose(someFunction, "my_javascript_function");
+```
+
+When passing complex objects as arguments, bear in mind that internally they are converted to JSON and sent down a websocket (a process that potentially loses information).
+
+### Eello, World!
+
+> See full example in: [examples/01 - hello_world](https://github.com/ChrisKnott/Eel/tree/master/examples/01%20-%20hello_world)
+
+Putting this together into a **Hello, World!** example, we have a short HTML page, `web/hello.html`:
+
+```html
+
+
+
+ Hello, World!
+
+
+
+
+
+
+
+ Hello, World!
+
+
+```
+
+and a short Python script `hello.py`:
+
+```python
+import eel
+
+# Set web files folder and optionally specify which file types to check for eel.expose()
+# *Default allowed_extensions are: ['.js', '.html', '.txt', '.htm', '.xhtml']
+eel.init('web', allowed_extensions=['.js', '.html'])
+
+@eel.expose # Expose this function to Javascript
+def say_hello_py(x):
+ print('Hello from %s' % x)
+
+say_hello_py('Python World!')
+eel.say_hello_js('Python World!') # Call a Javascript function
+
+eel.start('hello.html') # Start (this blocks and enters loop)
+```
+
+If we run the Python script (`python hello.py`), then a browser window will open displaying `hello.html`, and we will see...
+
+```
+Hello from Python World!
+Hello from Javascript World!
+```
+
+...in the terminal, and...
+
+```
+Hello from Javascript World!
+Hello from Python World!
+```
+
+...in the browser console (press F12 to open).
+
+You will notice that in the Python code, the Javascript function is called before the browser window is even started - any early calls like this are queued up and then sent once the websocket has been established.
+
+### Return values
+
+While we want to think of our code as comprising a single application, the Python interpreter and the browser window run in separate processes. This can make communicating back and forth between them a bit of a mess, especially if we always had to explicitly _send_ values from one side to the other.
+
+Eel supports two ways of retrieving _return values_ from the other side of the app, which helps keep the code concise.
+
+To prevent hanging forever on the Python side, a timeout has been put in place for trying to retrieve values from
+the JavaScript side, which defaults to 10000 milliseconds (10 seconds). This can be changed with the `_js_result_timeout` parameter to `eel.init`. There is no corresponding timeout on the JavaScript side.
+
+#### Callbacks
+
+When you call an exposed function, you can immediately pass a callback function afterwards. This callback will automatically be called asynchrounously with the return value when the function has finished executing on the other side.
+
+For example, if we have the following function defined and exposed in Javascript:
+
+```javascript
+eel.expose(js_random);
+function js_random() {
+ return Math.random();
+}
+```
+
+Then in Python we can retrieve random values from the Javascript side like so:
+
+```python
+def print_num(n):
+ print('Got this from Javascript:', n)
+
+# Call Javascript function, and pass explicit callback function
+eel.js_random()(print_num)
+
+# Do the same with an inline lambda as callback
+eel.js_random()(lambda n: print('Got this from Javascript:', n))
+```
+
+(It works exactly the same the other way around).
+
+#### Synchronous returns
+
+In most situations, the calls to the other side are to quickly retrieve some piece of data, such as the state of a widget or contents of an input field. In these cases it is more convenient to just synchronously wait a few milliseconds then continue with your code, rather than breaking the whole thing up into callbacks.
+
+To synchronously retrieve the return value, simply pass nothing to the second set of brackets. So in Python we would write:
+
+```python
+n = eel.js_random()() # This immediately returns the value
+print('Got this from Javascript:', n)
+```
+
+You can only perform synchronous returns after the browser window has started (after calling `eel.start()`), otherwise obviously the call with hang.
+
+In Javascript, the language doesn't allow us to block while we wait for a callback, except by using `await` from inside an `async` function. So the equivalent code from the Javascript side would be:
+
+```javascript
+async function run() {
+ // Inside a function marked 'async' we can use the 'await' keyword.
+
+ let n = await eel.py_random()(); // Must prefix call with 'await', otherwise it's the same syntax
+ console.log("Got this from Python: " + n);
+}
+
+run();
+```
+
+## Asynchronous Python
+
+Eel is built on Bottle and Gevent, which provide an asynchronous event loop similar to Javascript. A lot of Python's standard library implicitly assumes there is a single execution thread - to deal with this, Gevent can "[monkey patch](https://en.wikipedia.org/wiki/Monkey_patch)" many of the standard modules such as `time`. ~~This monkey patching is done automatically when you call `import eel`~~. If you need monkey patching you should `import gevent.monkey` and call `gevent.monkey.patch_all()` _before_ you `import eel`. Monkey patching can interfere with things like debuggers so should be avoided unless necessary.
+
+For most cases you should be fine by avoiding using `time.sleep()` and instead using the versions provided by `gevent`. For convenience, the two most commonly needed gevent methods, `sleep()` and `spawn()` are provided directly from Eel (to save importing `time` and/or `gevent` as well).
+
+In this example...
+
+```python
+import eel
+eel.init('web')
+
+def my_other_thread():
+ while True:
+ print("I'm a thread")
+ eel.sleep(1.0) # Use eel.sleep(), not time.sleep()
+
+eel.spawn(my_other_thread)
+
+eel.start('main.html', block=False) # Don't block on this call
+
+while True:
+ print("I'm a main loop")
+ eel.sleep(1.0) # Use eel.sleep(), not time.sleep()
+```
+
+...we would then have three "threads" (greenlets) running;
+
+1. Eel's internal thread for serving the web folder
+2. The `my_other_thread` method, repeatedly printing **"I'm a thread"**
+3. The main Python thread, which would be stuck in the final `while` loop, repeatedly printing **"I'm a main loop"**
+
+## Building distributable binary with PyInstaller
+
+If you want to package your app into a program that can be run on a computer without a Python interpreter installed, you should use **PyInstaller**.
+
+1. Configure a virtualenv with desired Python version and minimum necessary Python packages
+2. Install PyInstaller `pip install PyInstaller`
+3. In your app's folder, run `python -m eel [your_main_script] [your_web_folder]` (for example, you might run `python -m eel hello.py web`)
+4. This will create a new folder `dist/`
+5. Valid PyInstaller flags can be passed through, such as excluding modules with the flag: `--exclude module_name`. For example, you might run `python -m eel file_access.py web --exclude win32com --exclude numpy --exclude cryptography`
+6. When happy that your app is working correctly, add `--onefile --noconsole` flags to build a single executable file
+
+Consult the [documentation for PyInstaller](http://PyInstaller.readthedocs.io/en/stable/) for more options.
+
+## Microsoft Edge
+
+For Windows 10 users, Microsoft Edge (`eel.start(.., mode='edge')`) is installed by default and a useful fallback if a preferred browser is not installed. See the examples:
+
+- A Hello World example using Microsoft Edge: [examples/01 - hello_world-Edge/](https://github.com/ChrisKnott/Eel/tree/master/examples/01%20-%20hello_world-Edge)
+- Example implementing browser-fallbacks: [examples/07 - CreateReactApp/eel_CRA.py](https://github.com/ChrisKnott/Eel/tree/master/examples/07%20-%20CreateReactApp/eel_CRA.py)
+
+
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools-56.0.0.dist-info/INSTALLER b/IKEA_scraper/.venv/Lib/site-packages/MarkupSafe-2.0.1.dist-info/INSTALLER
similarity index 100%
rename from IKEA_scraper/.venv/Lib/site-packages/setuptools-56.0.0.dist-info/INSTALLER
rename to IKEA_scraper/.venv/Lib/site-packages/MarkupSafe-2.0.1.dist-info/INSTALLER
diff --git a/IKEA_scraper/.venv/Lib/site-packages/MarkupSafe-2.0.1.dist-info/LICENSE.rst b/IKEA_scraper/.venv/Lib/site-packages/MarkupSafe-2.0.1.dist-info/LICENSE.rst
new file mode 100644
index 00000000..9d227a0c
--- /dev/null
+++ b/IKEA_scraper/.venv/Lib/site-packages/MarkupSafe-2.0.1.dist-info/LICENSE.rst
@@ -0,0 +1,28 @@
+Copyright 2010 Pallets
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/IKEA_scraper/.venv/Lib/site-packages/MarkupSafe-2.0.1.dist-info/METADATA b/IKEA_scraper/.venv/Lib/site-packages/MarkupSafe-2.0.1.dist-info/METADATA
new file mode 100644
index 00000000..ef44e2b3
--- /dev/null
+++ b/IKEA_scraper/.venv/Lib/site-packages/MarkupSafe-2.0.1.dist-info/METADATA
@@ -0,0 +1,100 @@
+Metadata-Version: 2.1
+Name: MarkupSafe
+Version: 2.0.1
+Summary: Safely add untrusted strings to HTML/XML markup.
+Home-page: https://palletsprojects.com/p/markupsafe/
+Author: Armin Ronacher
+Author-email: armin.ronacher@active-4.com
+Maintainer: Pallets
+Maintainer-email: contact@palletsprojects.com
+License: BSD-3-Clause
+Project-URL: Donate, https://palletsprojects.com/donate
+Project-URL: Documentation, https://markupsafe.palletsprojects.com/
+Project-URL: Changes, https://markupsafe.palletsprojects.com/changes/
+Project-URL: Source Code, https://github.com/pallets/markupsafe/
+Project-URL: Issue Tracker, https://github.com/pallets/markupsafe/issues/
+Project-URL: Twitter, https://twitter.com/PalletsTeam
+Project-URL: Chat, https://discord.gg/pallets
+Platform: UNKNOWN
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Environment :: Web Environment
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: BSD License
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
+Classifier: Topic :: Text Processing :: Markup :: HTML
+Requires-Python: >=3.6
+Description-Content-Type: text/x-rst
+
+MarkupSafe
+==========
+
+MarkupSafe implements a text object that escapes characters so it is
+safe to use in HTML and XML. Characters that have special meanings are
+replaced so that they display as the actual characters. This mitigates
+injection attacks, meaning untrusted user input can safely be displayed
+on a page.
+
+
+Installing
+----------
+
+Install and update using `pip`_:
+
+.. code-block:: text
+
+ pip install -U MarkupSafe
+
+.. _pip: https://pip.pypa.io/en/stable/quickstart/
+
+
+Examples
+--------
+
+.. code-block:: pycon
+
+ >>> from markupsafe import Markup, escape
+
+ >>> # escape replaces special characters and wraps in Markup
+ >>> escape("")
+ Markup('<script>alert(document.cookie);</script>')
+
+ >>> # wrap in Markup to mark text "safe" and prevent escaping
+ >>> Markup("Hello")
+ Markup('hello')
+
+ >>> escape(Markup("Hello"))
+ Markup('hello')
+
+ >>> # Markup is a str subclass
+ >>> # methods and operators escape their arguments
+ >>> template = Markup("Hello {name}")
+ >>> template.format(name='"World"')
+ Markup('Hello "World"')
+
+
+Donate
+------
+
+The Pallets organization develops and supports MarkupSafe and other
+popular packages. In order to grow the community of contributors and
+users, and allow the maintainers to devote more time to the projects,
+`please donate today`_.
+
+.. _please donate today: https://palletsprojects.com/donate
+
+
+Links
+-----
+
+- Documentation: https://markupsafe.palletsprojects.com/
+- Changes: https://markupsafe.palletsprojects.com/changes/
+- PyPI Releases: https://pypi.org/project/MarkupSafe/
+- Source Code: https://github.com/pallets/markupsafe/
+- Issue Tracker: https://github.com/pallets/markupsafe/issues/
+- Website: https://palletsprojects.com/p/markupsafe/
+- Twitter: https://twitter.com/PalletsTeam
+- Chat: https://discord.gg/pallets
+
+
diff --git a/IKEA_scraper/.venv/Lib/site-packages/MarkupSafe-2.0.1.dist-info/RECORD b/IKEA_scraper/.venv/Lib/site-packages/MarkupSafe-2.0.1.dist-info/RECORD
new file mode 100644
index 00000000..c5acda27
--- /dev/null
+++ b/IKEA_scraper/.venv/Lib/site-packages/MarkupSafe-2.0.1.dist-info/RECORD
@@ -0,0 +1,13 @@
+MarkupSafe-2.0.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
+MarkupSafe-2.0.1.dist-info/LICENSE.rst,sha256=RjHsDbX9kKVH4zaBcmTGeYIUM4FG-KyUtKV_lu6MnsQ,1503
+MarkupSafe-2.0.1.dist-info/METADATA,sha256=FmPpxBdaqCCjF-XKqoxeEzqAzhetQnrkkSsd3V3X-Jc,3211
+MarkupSafe-2.0.1.dist-info/RECORD,,
+MarkupSafe-2.0.1.dist-info/WHEEL,sha256=jr7ubY0Lkz_yXH9FfFe9PTtLhGOsf62dZkNvTYrJINE,100
+MarkupSafe-2.0.1.dist-info/top_level.txt,sha256=qy0Plje5IJuvsCBjejJyhDCjEAdcDLK_2agVcex8Z6U,11
+markupsafe/__init__.py,sha256=s08KbuFRV3zh4Wh7xjsIphXgp1xf0EUB79wlPj-4scc,9211
+markupsafe/__pycache__/__init__.cpython-39.pyc,,
+markupsafe/__pycache__/_native.cpython-39.pyc,,
+markupsafe/_native.py,sha256=JMXegJtk1ZcnRKrgyCA-CEXmRnOpaIXLyDAM98GbshY,2061
+markupsafe/_speedups.cp39-win_amd64.pyd,sha256=hPTsANj9bt7hLYxWLuZcC7E3-EnJQ4GlvIf9Vx0p1p0,16384
+markupsafe/_speedups.pyi,sha256=f5QtwIOP0eLrxh2v5p6SmaYmlcHIGIfmz0DovaqL0OU,238
+markupsafe/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
diff --git a/IKEA_scraper/.venv/Lib/site-packages/MarkupSafe-2.0.1.dist-info/WHEEL b/IKEA_scraper/.venv/Lib/site-packages/MarkupSafe-2.0.1.dist-info/WHEEL
new file mode 100644
index 00000000..d1267fcc
--- /dev/null
+++ b/IKEA_scraper/.venv/Lib/site-packages/MarkupSafe-2.0.1.dist-info/WHEEL
@@ -0,0 +1,5 @@
+Wheel-Version: 1.0
+Generator: bdist_wheel (0.36.2)
+Root-Is-Purelib: false
+Tag: cp39-cp39-win_amd64
+
diff --git a/IKEA_scraper/.venv/Lib/site-packages/MarkupSafe-2.0.1.dist-info/top_level.txt b/IKEA_scraper/.venv/Lib/site-packages/MarkupSafe-2.0.1.dist-info/top_level.txt
new file mode 100644
index 00000000..75bf7292
--- /dev/null
+++ b/IKEA_scraper/.venv/Lib/site-packages/MarkupSafe-2.0.1.dist-info/top_level.txt
@@ -0,0 +1 @@
+markupsafe
diff --git a/IKEA_scraper/.venv/Lib/site-packages/__pycache__/bottle.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/__pycache__/bottle.cpython-39.pyc
index 1e8b7acb..1d8dfb85 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/__pycache__/bottle.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/__pycache__/bottle.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/__pycache__/pyparsing.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/__pycache__/pyparsing.cpython-39.pyc
index e03040ef..23225a0d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/__pycache__/pyparsing.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/__pycache__/pyparsing.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/__pycache__/whichcraft.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/__pycache__/whichcraft.cpython-39.pyc
index d687796c..ef476df0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/__pycache__/whichcraft.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/__pycache__/whichcraft.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/_distutils_hack/__init__.py b/IKEA_scraper/.venv/Lib/site-packages/_distutils_hack/__init__.py
index 47ce2494..5f40996a 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/_distutils_hack/__init__.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/_distutils_hack/__init__.py
@@ -9,7 +9,7 @@ is_pypy = '__pypy__' in sys.builtin_module_names
warnings.filterwarnings('ignore',
- '.+ distutils .+ deprecated',
+ r'.+ distutils\b.+ deprecated',
DeprecationWarning)
diff --git a/IKEA_scraper/.venv/Lib/site-packages/_distutils_hack/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/_distutils_hack/__pycache__/__init__.cpython-39.pyc
index 626d2141..58f70b87 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/_distutils_hack/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/_distutils_hack/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/_distutils_hack/__pycache__/override.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/_distutils_hack/__pycache__/override.cpython-39.pyc
index e9b54f7b..bc257f03 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/_distutils_hack/__pycache__/override.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/_distutils_hack/__pycache__/override.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/bottle_websocket-0.2.9-py3.9.egg-info/PKG-INFO b/IKEA_scraper/.venv/Lib/site-packages/bottle_websocket-0.2.9-py3.9.egg-info/PKG-INFO
index cd0f0ddb..02edb3af 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/bottle_websocket-0.2.9-py3.9.egg-info/PKG-INFO
+++ b/IKEA_scraper/.venv/Lib/site-packages/bottle_websocket-0.2.9-py3.9.egg-info/PKG-INFO
@@ -1,4 +1,4 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
Name: bottle-websocket
Version: 0.2.9
Summary: WebSockets for bottle
@@ -6,7 +6,6 @@ Home-page: https://github.com/zeekay/bottle-websocket
Author: Zach Kelling
Author-email: zk@monoid.io
License: MIT
-Description: Easy websockets for bottle.
Keywords: bottle websockets
Platform: UNKNOWN
Classifier: Environment :: Web Environment
@@ -16,3 +15,6 @@ Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
+
+Easy websockets for bottle.
+
diff --git a/IKEA_scraper/.venv/Lib/site-packages/bottle_websocket/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/bottle_websocket/__pycache__/__init__.cpython-39.pyc
index a6ef1d3f..69519787 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/bottle_websocket/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/bottle_websocket/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/bottle_websocket/__pycache__/plugin.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/bottle_websocket/__pycache__/plugin.cpython-39.pyc
index 2dfb77f0..f3aa39a0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/bottle_websocket/__pycache__/plugin.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/bottle_websocket/__pycache__/plugin.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/bottle_websocket/__pycache__/server.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/bottle_websocket/__pycache__/server.cpython-39.pyc
index c4058ece..d1b105e3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/bottle_websocket/__pycache__/server.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/bottle_websocket/__pycache__/server.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/bs4-0.0.1-py3.9.egg-info/PKG-INFO b/IKEA_scraper/.venv/Lib/site-packages/bs4-0.0.1-py3.9.egg-info/PKG-INFO
index 60137e48..805d1d3b 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/bs4-0.0.1-py3.9.egg-info/PKG-INFO
+++ b/IKEA_scraper/.venv/Lib/site-packages/bs4-0.0.1-py3.9.egg-info/PKG-INFO
@@ -1,4 +1,4 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
Name: bs4
Version: 0.0.1
Summary: Screen-scraping library
@@ -7,7 +7,6 @@ Author: Leonard Richardson
Author-email: leonardr@segfault.org
License: MIT
Download-URL: http://www.crummy.com/software/BeautifulSoup/bs4/download/
-Description: Use `beautifulsoup4 `_ instead.
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
@@ -19,3 +18,6 @@ Classifier: Topic :: Text Processing :: Markup :: HTML
Classifier: Topic :: Text Processing :: Markup :: XML
Classifier: Topic :: Text Processing :: Markup :: SGML
Classifier: Topic :: Software Development :: Libraries :: Python Modules
+
+Use `beautifulsoup4 `_ instead.
+
diff --git a/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/__init__.cpython-39.pyc
index d9651279..f0b85e05 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/dammit.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/dammit.cpython-39.pyc
index d2cb2058..803f2d65 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/dammit.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/dammit.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/diagnose.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/diagnose.cpython-39.pyc
index 1812736e..9ecdbcf0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/diagnose.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/diagnose.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/element.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/element.cpython-39.pyc
index 16bc6796..9c92b03d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/element.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/element.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/formatter.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/formatter.cpython-39.pyc
index e2c095da..f68e6b1f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/formatter.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/formatter.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/testing.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/testing.cpython-39.pyc
index e82f2fb1..746e173c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/testing.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/bs4/__pycache__/testing.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/bs4/builder/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/bs4/builder/__pycache__/__init__.cpython-39.pyc
index a87d54a3..2c13aac0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/bs4/builder/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/bs4/builder/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/bs4/builder/__pycache__/_html5lib.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/bs4/builder/__pycache__/_html5lib.cpython-39.pyc
index ffdad7af..a8544610 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/bs4/builder/__pycache__/_html5lib.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/bs4/builder/__pycache__/_html5lib.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/bs4/builder/__pycache__/_htmlparser.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/bs4/builder/__pycache__/_htmlparser.cpython-39.pyc
index 7a56c639..17e41583 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/bs4/builder/__pycache__/_htmlparser.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/bs4/builder/__pycache__/_htmlparser.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/bs4/builder/__pycache__/_lxml.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/bs4/builder/__pycache__/_lxml.cpython-39.pyc
index a6a358f2..da010c65 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/bs4/builder/__pycache__/_lxml.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/bs4/builder/__pycache__/_lxml.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/certifi/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/certifi/__pycache__/__init__.cpython-39.pyc
index 08cfd3a8..76977a0e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/certifi/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/certifi/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/certifi/__pycache__/__main__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/certifi/__pycache__/__main__.cpython-39.pyc
index 42c87ed1..b1ac9913 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/certifi/__pycache__/__main__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/certifi/__pycache__/__main__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/certifi/__pycache__/core.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/certifi/__pycache__/core.cpython-39.pyc
index 1e71caea..8c9635a1 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/certifi/__pycache__/core.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/certifi/__pycache__/core.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/__init__.cpython-39.pyc
index 153a873d..8dfe995f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/api.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/api.cpython-39.pyc
index 99735c4d..6c9eae69 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/api.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/api.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/backend_ctypes.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/backend_ctypes.cpython-39.pyc
index f29197c0..6e61757f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/backend_ctypes.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/backend_ctypes.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/cffi_opcode.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/cffi_opcode.cpython-39.pyc
index 06025c91..e2c60193 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/cffi_opcode.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/cffi_opcode.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/commontypes.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/commontypes.cpython-39.pyc
index 994e6e5b..169689d2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/commontypes.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/commontypes.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/cparser.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/cparser.cpython-39.pyc
index bcf5cd29..7abdf69d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/cparser.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/cparser.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/error.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/error.cpython-39.pyc
index cc5333b1..f3f040bb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/error.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/error.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/ffiplatform.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/ffiplatform.cpython-39.pyc
index 5cca5dac..c6e54229 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/ffiplatform.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/ffiplatform.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/lock.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/lock.cpython-39.pyc
index 840c7943..b137e5d7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/lock.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/lock.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/model.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/model.cpython-39.pyc
index 23875e8c..2e47a0bd 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/model.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/model.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/pkgconfig.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/pkgconfig.cpython-39.pyc
index e96005a6..0dc91d45 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/pkgconfig.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/pkgconfig.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/recompiler.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/recompiler.cpython-39.pyc
index b937b6c9..378fb651 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/recompiler.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/recompiler.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/setuptools_ext.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/setuptools_ext.cpython-39.pyc
index e3501478..9f3bbcf0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/setuptools_ext.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/setuptools_ext.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/vengine_cpy.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/vengine_cpy.cpython-39.pyc
index 3f9ee6aa..ec22b3a0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/vengine_cpy.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/vengine_cpy.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/vengine_gen.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/vengine_gen.cpython-39.pyc
index 404483e4..1022c259 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/vengine_gen.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/vengine_gen.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/verifier.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/verifier.cpython-39.pyc
index b19dc96f..c006306b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/verifier.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/cffi/__pycache__/verifier.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer-2.0.4.dist-info/RECORD b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer-2.0.4.dist-info/RECORD
index fd0b5905..4bc537c3 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer-2.0.4.dist-info/RECORD
+++ b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer-2.0.4.dist-info/RECORD
@@ -1,4 +1,4 @@
-../../Scripts/normalizer.exe,sha256=63XTo-ZCPFkdVNSh7OgEV_EiUDlwQbEO4iTjK_czj_0,106391
+../../Scripts/normalizer.exe,sha256=Tb318KAuAZX3JDK2YH_V8XoRI9mah1OfwjHG0lkxy0k,106395
charset_normalizer-2.0.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
charset_normalizer-2.0.4.dist-info/LICENSE,sha256=6zGgxaT7Cbik4yBV0lweX5w1iidS_vPNcgIT0cz-4kE,1070
charset_normalizer-2.0.4.dist-info/METADATA,sha256=iGaSYKAbW7dltLfO_sIm347XsC5kqKiFrvR3IHolDio,11710
diff --git a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/__init__.cpython-39.pyc
index 6a5659d6..7b2681ad 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/api.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/api.cpython-39.pyc
index ae3e39f8..9b6d3c83 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/api.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/api.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/cd.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/cd.cpython-39.pyc
index c4a04ea3..23f319a4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/cd.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/cd.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/constant.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/constant.cpython-39.pyc
index c0ae3fb5..0b1f7ee4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/constant.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/constant.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/legacy.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/legacy.cpython-39.pyc
index 72ff0689..651b515e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/legacy.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/legacy.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/md.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/md.cpython-39.pyc
index 027bfd5a..791b53b9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/md.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/md.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/models.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/models.cpython-39.pyc
index 624915c8..6ea64ae4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/models.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/models.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/utils.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/utils.cpython-39.pyc
index fc8df2bb..0aa430d5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/utils.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/utils.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/version.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/version.cpython-39.pyc
index d7a5f41e..439ba4cb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/version.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/__pycache__/version.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/assets/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/assets/__pycache__/__init__.cpython-39.pyc
index edf245b5..4d2a6c70 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/assets/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/assets/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-39.pyc
index 5c9ab87e..2c99c476 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/cli/__pycache__/normalizer.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/cli/__pycache__/normalizer.cpython-39.pyc
index 65a2ab10..5e9be9c5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/cli/__pycache__/normalizer.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/charset_normalizer/cli/__pycache__/normalizer.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/__init__.cpython-39.pyc
index 04b94b1c..690bcd1a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/__main__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/__main__.cpython-39.pyc
index d7ee508d..13727e61 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/__main__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/__main__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/browsers.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/browsers.cpython-39.pyc
index 0aa137d0..66491765 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/browsers.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/browsers.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/chrome.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/chrome.cpython-39.pyc
index f033b140..1fe24df0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/chrome.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/chrome.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/edge.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/edge.cpython-39.pyc
index 4def48e3..b7056671 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/edge.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/edge.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/electron.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/electron.cpython-39.pyc
index 31155d33..93ed2edb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/electron.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/eel/__pycache__/electron.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future-0.18.2-py3.9.egg-info/PKG-INFO b/IKEA_scraper/.venv/Lib/site-packages/future-0.18.2-py3.9.egg-info/PKG-INFO
index fb469499..b6f83573 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/future-0.18.2-py3.9.egg-info/PKG-INFO
+++ b/IKEA_scraper/.venv/Lib/site-packages/future-0.18.2-py3.9.egg-info/PKG-INFO
@@ -1,4 +1,4 @@
-Metadata-Version: 1.2
+Metadata-Version: 2.1
Name: future
Version: 0.18.2
Summary: Clean single-source support for Python 3 and 2
@@ -6,88 +6,6 @@ Home-page: https://python-future.org
Author: Ed Schofield
Author-email: ed@pythoncharmers.com
License: MIT
-Description:
- future: Easy, safe support for Python 2/3 compatibility
- =======================================================
-
- ``future`` is the missing compatibility layer between Python 2 and Python
- 3. It allows you to use a single, clean Python 3.x-compatible codebase to
- support both Python 2 and Python 3 with minimal overhead.
-
- It is designed to be used as follows::
-
- from __future__ import (absolute_import, division,
- print_function, unicode_literals)
- from builtins import (
- bytes, dict, int, list, object, range, str,
- ascii, chr, hex, input, next, oct, open,
- pow, round, super,
- filter, map, zip)
-
- followed by predominantly standard, idiomatic Python 3 code that then runs
- similarly on Python 2.6/2.7 and Python 3.3+.
-
- The imports have no effect on Python 3. On Python 2, they shadow the
- corresponding builtins, which normally have different semantics on Python 3
- versus 2, to provide their Python 3 semantics.
-
-
- Standard library reorganization
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- ``future`` supports the standard library reorganization (PEP 3108) through the
- following Py3 interfaces:
-
- >>> # Top-level packages with Py3 names provided on Py2:
- >>> import html.parser
- >>> import queue
- >>> import tkinter.dialog
- >>> import xmlrpc.client
- >>> # etc.
-
- >>> # Aliases provided for extensions to existing Py2 module names:
- >>> from future.standard_library import install_aliases
- >>> install_aliases()
-
- >>> from collections import Counter, OrderedDict # backported to Py2.6
- >>> from collections import UserDict, UserList, UserString
- >>> import urllib.request
- >>> from itertools import filterfalse, zip_longest
- >>> from subprocess import getoutput, getstatusoutput
-
-
- Automatic conversion
- --------------------
-
- An included script called `futurize
- `_ aids in converting
- code (from either Python 2 or Python 3) to code compatible with both
- platforms. It is similar to ``python-modernize`` but goes further in
- providing Python 3 compatibility through the use of the backported types
- and builtin functions in ``future``.
-
-
- Documentation
- -------------
-
- See: http://python-future.org
-
-
- Credits
- -------
-
- :Author: Ed Schofield, Jordan M. Adler, et al
- :Sponsor: Python Charmers Pty Ltd, Australia, and Python Charmers Pte
- Ltd, Singapore. http://pythoncharmers.com
- :Others: See docs/credits.rst or http://python-future.org/credits.html
-
-
- Licensing
- ---------
- Copyright 2013-2019 Python Charmers Pty Ltd, Australia.
- The software is distributed under an MIT licence. See LICENSE.txt.
-
-
Keywords: future past python3 migration futurize backport six 2to3 modernize pasteurize 3to2
Platform: UNKNOWN
Classifier: Programming Language :: Python
@@ -105,3 +23,88 @@ Classifier: License :: OSI Approved :: MIT License
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Requires-Python: >=2.6, !=3.0.*, !=3.1.*, !=3.2.*
+License-File: LICENSE.txt
+
+
+future: Easy, safe support for Python 2/3 compatibility
+=======================================================
+
+``future`` is the missing compatibility layer between Python 2 and Python
+3. It allows you to use a single, clean Python 3.x-compatible codebase to
+support both Python 2 and Python 3 with minimal overhead.
+
+It is designed to be used as follows::
+
+ from __future__ import (absolute_import, division,
+ print_function, unicode_literals)
+ from builtins import (
+ bytes, dict, int, list, object, range, str,
+ ascii, chr, hex, input, next, oct, open,
+ pow, round, super,
+ filter, map, zip)
+
+followed by predominantly standard, idiomatic Python 3 code that then runs
+similarly on Python 2.6/2.7 and Python 3.3+.
+
+The imports have no effect on Python 3. On Python 2, they shadow the
+corresponding builtins, which normally have different semantics on Python 3
+versus 2, to provide their Python 3 semantics.
+
+
+Standard library reorganization
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``future`` supports the standard library reorganization (PEP 3108) through the
+following Py3 interfaces:
+
+ >>> # Top-level packages with Py3 names provided on Py2:
+ >>> import html.parser
+ >>> import queue
+ >>> import tkinter.dialog
+ >>> import xmlrpc.client
+ >>> # etc.
+
+ >>> # Aliases provided for extensions to existing Py2 module names:
+ >>> from future.standard_library import install_aliases
+ >>> install_aliases()
+
+ >>> from collections import Counter, OrderedDict # backported to Py2.6
+ >>> from collections import UserDict, UserList, UserString
+ >>> import urllib.request
+ >>> from itertools import filterfalse, zip_longest
+ >>> from subprocess import getoutput, getstatusoutput
+
+
+Automatic conversion
+--------------------
+
+An included script called `futurize
+`_ aids in converting
+code (from either Python 2 or Python 3) to code compatible with both
+platforms. It is similar to ``python-modernize`` but goes further in
+providing Python 3 compatibility through the use of the backported types
+and builtin functions in ``future``.
+
+
+Documentation
+-------------
+
+See: http://python-future.org
+
+
+Credits
+-------
+
+:Author: Ed Schofield, Jordan M. Adler, et al
+:Sponsor: Python Charmers Pty Ltd, Australia, and Python Charmers Pte
+ Ltd, Singapore. http://pythoncharmers.com
+:Others: See docs/credits.rst or http://python-future.org/credits.html
+
+
+Licensing
+---------
+Copyright 2013-2019 Python Charmers Pty Ltd, Australia.
+The software is distributed under an MIT licence. See LICENSE.txt.
+
+
+
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/__pycache__/__init__.cpython-39.pyc
index ae83888c..8d0d0cbc 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/__init__.cpython-39.pyc
index 325ea975..17f0d381 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/_markupbase.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/_markupbase.cpython-39.pyc
index 5142f8cd..b486d7d9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/_markupbase.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/_markupbase.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/datetime.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/datetime.cpython-39.pyc
index ea398c1d..8726863d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/datetime.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/datetime.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/misc.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/misc.cpython-39.pyc
index 88a7c8d6..73879ca7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/misc.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/misc.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/socket.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/socket.cpython-39.pyc
index 8c081281..55381cc8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/socket.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/socket.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/socketserver.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/socketserver.cpython-39.pyc
index 3c7bfc48..bfa16ff4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/socketserver.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/socketserver.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/total_ordering.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/total_ordering.cpython-39.pyc
index 98492308..dec3ad7e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/total_ordering.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/__pycache__/total_ordering.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/__init__.cpython-39.pyc
index 95f59e23..0ff04051 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/_encoded_words.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/_encoded_words.cpython-39.pyc
index f2b7f539..9f412242 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/_encoded_words.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/_encoded_words.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/_header_value_parser.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/_header_value_parser.cpython-39.pyc
index 42940756..7b73fda9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/_header_value_parser.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/_header_value_parser.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/_parseaddr.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/_parseaddr.cpython-39.pyc
index f68565ca..e1c0d2a6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/_parseaddr.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/_parseaddr.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/_policybase.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/_policybase.cpython-39.pyc
index cca3a364..11cded21 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/_policybase.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/_policybase.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/base64mime.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/base64mime.cpython-39.pyc
index fe9f7430..32781b17 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/base64mime.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/base64mime.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/charset.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/charset.cpython-39.pyc
index c818cf0f..ca125f5e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/charset.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/charset.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/encoders.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/encoders.cpython-39.pyc
index c8e1ce5a..64e940d5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/encoders.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/encoders.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/errors.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/errors.cpython-39.pyc
index ed4e5c57..dfe49159 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/errors.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/errors.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/feedparser.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/feedparser.cpython-39.pyc
index 39da99d0..b77e73d4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/feedparser.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/feedparser.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/generator.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/generator.cpython-39.pyc
index 40c1ac18..4bb2494a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/generator.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/generator.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/header.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/header.cpython-39.pyc
index cc0bfe58..46377e25 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/header.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/header.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/headerregistry.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/headerregistry.cpython-39.pyc
index 0e4960ab..e86450de 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/headerregistry.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/headerregistry.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/iterators.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/iterators.cpython-39.pyc
index e389cb67..0b295778 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/iterators.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/iterators.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/message.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/message.cpython-39.pyc
index 2ece0339..b0f98810 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/message.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/message.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/parser.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/parser.cpython-39.pyc
index 2fddd4c6..478d8395 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/parser.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/parser.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/policy.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/policy.cpython-39.pyc
index 4c2534ac..caeef524 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/policy.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/policy.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/quoprimime.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/quoprimime.cpython-39.pyc
index 99699432..8679e4fb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/quoprimime.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/quoprimime.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/utils.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/utils.cpython-39.pyc
index 4b21fc8d..ebf13526 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/utils.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/__pycache__/utils.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/__init__.cpython-39.pyc
index e53c8c00..37252010 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/application.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/application.cpython-39.pyc
index c8e4c589..aac77b2c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/application.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/application.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/audio.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/audio.cpython-39.pyc
index 8240772c..7f25151f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/audio.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/audio.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/base.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/base.cpython-39.pyc
index eddbb584..b3081ab6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/base.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/base.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/image.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/image.cpython-39.pyc
index 1e02b7fe..75aa798d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/image.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/image.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/message.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/message.cpython-39.pyc
index 9b20a417..6d6ee87b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/message.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/message.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/multipart.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/multipart.cpython-39.pyc
index ee101d3a..1a754d89 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/multipart.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/multipart.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/nonmultipart.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/nonmultipart.cpython-39.pyc
index 8226bc3b..140da24a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/nonmultipart.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/nonmultipart.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/text.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/text.cpython-39.pyc
index ac8666e3..ddddaa02 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/text.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/email/mime/__pycache__/text.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/html/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/html/__pycache__/__init__.cpython-39.pyc
index 6526c2fe..c8f3c072 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/html/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/html/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/html/__pycache__/entities.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/html/__pycache__/entities.cpython-39.pyc
index 897bdfe0..c362996d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/html/__pycache__/entities.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/html/__pycache__/entities.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/html/__pycache__/parser.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/html/__pycache__/parser.cpython-39.pyc
index b01af2ce..364cb74f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/html/__pycache__/parser.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/html/__pycache__/parser.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/http/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/http/__pycache__/__init__.cpython-39.pyc
index e701874b..f7092276 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/http/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/http/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/http/__pycache__/client.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/http/__pycache__/client.cpython-39.pyc
index 4ed11d8f..94e8496b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/http/__pycache__/client.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/http/__pycache__/client.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/http/__pycache__/cookiejar.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/http/__pycache__/cookiejar.cpython-39.pyc
index 71d6acb2..3e98cffb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/http/__pycache__/cookiejar.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/http/__pycache__/cookiejar.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/http/__pycache__/cookies.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/http/__pycache__/cookies.cpython-39.pyc
index db3cbb38..0c359841 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/http/__pycache__/cookies.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/http/__pycache__/cookies.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/http/__pycache__/server.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/http/__pycache__/server.cpython-39.pyc
index 8f8eeebc..5802127b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/http/__pycache__/server.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/http/__pycache__/server.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/test/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/test/__pycache__/__init__.cpython-39.pyc
index 1abdcae2..78c24cbc 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/test/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/test/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/test/__pycache__/pystone.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/test/__pycache__/pystone.cpython-39.pyc
index 3ba03250..5f7ebc9d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/test/__pycache__/pystone.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/test/__pycache__/pystone.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/test/__pycache__/ssl_servers.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/test/__pycache__/ssl_servers.cpython-39.pyc
index cb73a9ff..5c0e5e93 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/test/__pycache__/ssl_servers.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/test/__pycache__/ssl_servers.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/test/__pycache__/support.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/test/__pycache__/support.cpython-39.pyc
index 07796c0c..29b10f58 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/test/__pycache__/support.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/test/__pycache__/support.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/__init__.cpython-39.pyc
index dd1394eb..511b11ac 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/error.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/error.cpython-39.pyc
index d6da142c..261f0bfa 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/error.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/error.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/parse.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/parse.cpython-39.pyc
index f12f3c7e..ee811c81 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/parse.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/parse.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/request.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/request.cpython-39.pyc
index 78c08c59..383bbf5d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/request.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/request.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/response.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/response.cpython-39.pyc
index e1f5c2aa..e6679457 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/response.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/response.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/robotparser.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/robotparser.cpython-39.pyc
index e5d4b7fd..26277303 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/robotparser.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/urllib/__pycache__/robotparser.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/xmlrpc/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/xmlrpc/__pycache__/__init__.cpython-39.pyc
index 7152e3e2..80bcf4d7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/xmlrpc/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/xmlrpc/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/xmlrpc/__pycache__/client.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/xmlrpc/__pycache__/client.cpython-39.pyc
index f9738e87..14d722bc 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/xmlrpc/__pycache__/client.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/xmlrpc/__pycache__/client.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/backports/xmlrpc/__pycache__/server.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/backports/xmlrpc/__pycache__/server.cpython-39.pyc
index 4d8a991a..ae3f3030 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/backports/xmlrpc/__pycache__/server.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/backports/xmlrpc/__pycache__/server.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/__init__.cpython-39.pyc
index 84d2ff4e..4928d69f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/disabled.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/disabled.cpython-39.pyc
index d20c9adb..9a88723f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/disabled.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/disabled.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/iterators.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/iterators.cpython-39.pyc
index b57989d9..85484391 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/iterators.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/iterators.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/misc.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/misc.cpython-39.pyc
index dda8fbec..3164353f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/misc.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/misc.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/new_min_max.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/new_min_max.cpython-39.pyc
index d622dd10..908a02b8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/new_min_max.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/new_min_max.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/newnext.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/newnext.cpython-39.pyc
index f97b44b0..cf62aff4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/newnext.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/newnext.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/newround.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/newround.cpython-39.pyc
index 8462ced2..6a461ffc 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/newround.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/newround.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/newsuper.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/newsuper.cpython-39.pyc
index d4aa7705..5f886b45 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/newsuper.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/builtins/__pycache__/newsuper.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/__init__.cpython-39.pyc
index 6b220446..ca1f26e5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/_dummy_thread.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/_dummy_thread.cpython-39.pyc
index 036e57d1..40cd56b5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/_dummy_thread.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/_dummy_thread.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/_markupbase.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/_markupbase.cpython-39.pyc
index 36bec740..c940dd31 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/_markupbase.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/_markupbase.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/_thread.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/_thread.cpython-39.pyc
index 73b43a00..de10243d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/_thread.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/_thread.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/builtins.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/builtins.cpython-39.pyc
index 5ee46f1e..f2bb7faa 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/builtins.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/builtins.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/collections.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/collections.cpython-39.pyc
index cd9186f7..113a6421 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/collections.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/collections.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/configparser.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/configparser.cpython-39.pyc
index 962d3853..fd46f299 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/configparser.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/configparser.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/copyreg.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/copyreg.cpython-39.pyc
index 3ac85f92..571cd4e7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/copyreg.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/copyreg.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/itertools.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/itertools.cpython-39.pyc
index 12800e0b..799d8b23 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/itertools.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/itertools.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/pickle.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/pickle.cpython-39.pyc
index a380bde4..407418d6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/pickle.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/pickle.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/queue.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/queue.cpython-39.pyc
index 190b88ec..da96b354 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/queue.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/queue.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/reprlib.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/reprlib.cpython-39.pyc
index fdc65c55..0067877b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/reprlib.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/reprlib.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/socketserver.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/socketserver.cpython-39.pyc
index 00771ec5..28f1a9ec 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/socketserver.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/socketserver.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/subprocess.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/subprocess.cpython-39.pyc
index 917fdebf..11f8c9f4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/subprocess.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/subprocess.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/sys.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/sys.cpython-39.pyc
index 8170da38..e752933b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/sys.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/sys.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/winreg.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/winreg.cpython-39.pyc
index d314f457..13fb87ad 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/winreg.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/__pycache__/winreg.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/dbm/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/dbm/__pycache__/__init__.cpython-39.pyc
index ad8e8213..bb384a92 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/dbm/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/dbm/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/dbm/__pycache__/dumb.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/dbm/__pycache__/dumb.cpython-39.pyc
index f1aeb20d..7c92a6c6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/dbm/__pycache__/dumb.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/dbm/__pycache__/dumb.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/dbm/__pycache__/gnu.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/dbm/__pycache__/gnu.cpython-39.pyc
index ea9f6b49..6213813f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/dbm/__pycache__/gnu.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/dbm/__pycache__/gnu.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/dbm/__pycache__/ndbm.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/dbm/__pycache__/ndbm.cpython-39.pyc
index bb80a6bb..c14b317f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/dbm/__pycache__/ndbm.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/dbm/__pycache__/ndbm.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/html/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/html/__pycache__/__init__.cpython-39.pyc
index 2686f4ff..f28752c8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/html/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/html/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/html/__pycache__/entities.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/html/__pycache__/entities.cpython-39.pyc
index 88d3ea90..dc480742 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/html/__pycache__/entities.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/html/__pycache__/entities.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/html/__pycache__/parser.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/html/__pycache__/parser.cpython-39.pyc
index 364a2e59..38cbfa89 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/html/__pycache__/parser.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/html/__pycache__/parser.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/http/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/http/__pycache__/__init__.cpython-39.pyc
index 3be24656..cbfe23cd 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/http/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/http/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/http/__pycache__/client.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/http/__pycache__/client.cpython-39.pyc
index 518f8563..5efabe23 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/http/__pycache__/client.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/http/__pycache__/client.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/http/__pycache__/cookiejar.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/http/__pycache__/cookiejar.cpython-39.pyc
index 04f61dc1..b0464b99 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/http/__pycache__/cookiejar.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/http/__pycache__/cookiejar.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/http/__pycache__/cookies.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/http/__pycache__/cookies.cpython-39.pyc
index 308ced46..c04fce4d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/http/__pycache__/cookies.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/http/__pycache__/cookies.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/http/__pycache__/server.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/http/__pycache__/server.cpython-39.pyc
index 8ef256b8..abd06b42 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/http/__pycache__/server.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/http/__pycache__/server.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/test/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/test/__pycache__/__init__.cpython-39.pyc
index c6b959f5..12696904 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/test/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/test/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/test/__pycache__/support.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/test/__pycache__/support.cpython-39.pyc
index 2cfe3ad5..05f833d9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/test/__pycache__/support.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/test/__pycache__/support.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/__init__.cpython-39.pyc
index ffcfc9cd..80ee1bae 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/colorchooser.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/colorchooser.cpython-39.pyc
index 12ff7142..b54ec31a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/colorchooser.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/colorchooser.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/commondialog.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/commondialog.cpython-39.pyc
index fbb0664d..727b6d83 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/commondialog.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/commondialog.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/constants.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/constants.cpython-39.pyc
index eeaf037c..c9b5cd72 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/constants.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/constants.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/dialog.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/dialog.cpython-39.pyc
index 9918e3fc..2989ffc6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/dialog.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/dialog.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/dnd.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/dnd.cpython-39.pyc
index 605829e3..f4fa31a3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/dnd.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/dnd.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/filedialog.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/filedialog.cpython-39.pyc
index 20bbd4a3..fa58205e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/filedialog.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/filedialog.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/font.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/font.cpython-39.pyc
index 4950e766..678fc615 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/font.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/font.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/messagebox.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/messagebox.cpython-39.pyc
index b50d7a92..99116bd3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/messagebox.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/messagebox.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/scrolledtext.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/scrolledtext.cpython-39.pyc
index 38174124..8dad8cbc 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/scrolledtext.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/scrolledtext.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/simpledialog.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/simpledialog.cpython-39.pyc
index ffef0ee8..0eb7494c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/simpledialog.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/simpledialog.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/tix.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/tix.cpython-39.pyc
index b427400a..bd57b3a3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/tix.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/tix.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/ttk.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/ttk.cpython-39.pyc
index ba9d8eb1..9a76cfc1 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/ttk.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/tkinter/__pycache__/ttk.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/__init__.cpython-39.pyc
index dd3da0d8..5900ac9f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/error.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/error.cpython-39.pyc
index e3645481..60f67932 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/error.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/error.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/parse.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/parse.cpython-39.pyc
index 9c3050f2..5d6633a7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/parse.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/parse.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/request.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/request.cpython-39.pyc
index 0937106c..b1b0e639 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/request.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/request.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/response.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/response.cpython-39.pyc
index 43dc4fed..71da5a9f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/response.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/response.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/robotparser.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/robotparser.cpython-39.pyc
index 10a8838b..7df2d6ba 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/robotparser.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/urllib/__pycache__/robotparser.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/xmlrpc/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/xmlrpc/__pycache__/__init__.cpython-39.pyc
index 6c5ebb41..b85917ba 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/xmlrpc/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/xmlrpc/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/xmlrpc/__pycache__/client.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/xmlrpc/__pycache__/client.cpython-39.pyc
index 678121cc..3822be3a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/xmlrpc/__pycache__/client.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/xmlrpc/__pycache__/client.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/moves/xmlrpc/__pycache__/server.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/moves/xmlrpc/__pycache__/server.cpython-39.pyc
index 693d6da2..1b60eac5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/moves/xmlrpc/__pycache__/server.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/moves/xmlrpc/__pycache__/server.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/standard_library/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/standard_library/__pycache__/__init__.cpython-39.pyc
index df5e208b..04a9fec8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/standard_library/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/standard_library/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/tests/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/tests/__pycache__/__init__.cpython-39.pyc
index 23c0f1c6..b3131aed 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/tests/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/tests/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/tests/__pycache__/base.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/tests/__pycache__/base.cpython-39.pyc
index 6aee5c0e..a1ed1818 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/tests/__pycache__/base.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/tests/__pycache__/base.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/__init__.cpython-39.pyc
index fc229c5d..8ca04c84 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newbytes.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newbytes.cpython-39.pyc
index ad891398..9b60cd34 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newbytes.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newbytes.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newdict.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newdict.cpython-39.pyc
index 3c8af55b..5c500155 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newdict.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newdict.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newint.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newint.cpython-39.pyc
index 00177a93..c302148c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newint.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newint.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newlist.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newlist.cpython-39.pyc
index 8846e5e9..d7f9b4b0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newlist.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newlist.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newmemoryview.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newmemoryview.cpython-39.pyc
index 7c338332..11181078 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newmemoryview.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newmemoryview.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newobject.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newobject.cpython-39.pyc
index cdd21908..28162925 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newobject.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newobject.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newopen.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newopen.cpython-39.pyc
index 90514125..a13f5a98 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newopen.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newopen.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newrange.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newrange.cpython-39.pyc
index 4e73100a..bfbfd2b7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newrange.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newrange.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newstr.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newstr.cpython-39.pyc
index 300b14a9..d745dc7f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newstr.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/types/__pycache__/newstr.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/utils/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/utils/__pycache__/__init__.cpython-39.pyc
index e3ff7982..192c1a7b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/utils/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/utils/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/future/utils/__pycache__/surrogateescape.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/future/utils/__pycache__/surrogateescape.cpython-39.pyc
index d09a7836..15f0b31f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/future/utils/__pycache__/surrogateescape.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/future/utils/__pycache__/surrogateescape.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/__init__.cpython-39.pyc
index 3070fdec..6f0dbded 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_abstract_linkable.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_abstract_linkable.cpython-39.pyc
index c9915a20..8ba338af 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_abstract_linkable.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_abstract_linkable.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_compat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_compat.cpython-39.pyc
index bbbfafe4..6f05de6c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_compat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_compat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_config.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_config.cpython-39.pyc
index 02f0c2fe..c49e4d82 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_config.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_config.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_fileobjectcommon.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_fileobjectcommon.cpython-39.pyc
index cc4dd3cd..2ce17127 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_fileobjectcommon.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_fileobjectcommon.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_fileobjectposix.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_fileobjectposix.cpython-39.pyc
index 2c142c77..5b01a20a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_fileobjectposix.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_fileobjectposix.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_greenlet_primitives.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_greenlet_primitives.cpython-39.pyc
index 469006d2..817fa967 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_greenlet_primitives.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_greenlet_primitives.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_hub_local.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_hub_local.cpython-39.pyc
index 8f33342e..862048c1 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_hub_local.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_hub_local.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_hub_primitives.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_hub_primitives.cpython-39.pyc
index 99d2e68b..0c121036 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_hub_primitives.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_hub_primitives.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_ident.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_ident.cpython-39.pyc
index 1dfc273e..0c4b7ec7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_ident.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_ident.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_imap.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_imap.cpython-39.pyc
index 41f7cfe7..b5a274f0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_imap.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_imap.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_interfaces.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_interfaces.cpython-39.pyc
index 1b1d3d3e..4378ef9f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_interfaces.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_interfaces.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_monitor.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_monitor.cpython-39.pyc
index bc70ca5d..b49ecbbd 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_monitor.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_monitor.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_patcher.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_patcher.cpython-39.pyc
index 7a993d1f..36fc4508 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_patcher.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_patcher.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_semaphore.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_semaphore.cpython-39.pyc
index 5d7b827a..b53144e1 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_semaphore.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_semaphore.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_socket2.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_socket2.cpython-39.pyc
index 6336fab4..c3d4be50 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_socket2.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_socket2.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_socket3.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_socket3.cpython-39.pyc
index 470887f5..f517a2f6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_socket3.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_socket3.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_socketcommon.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_socketcommon.cpython-39.pyc
index ee395104..a7bad5e3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_socketcommon.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_socketcommon.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_ssl2.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_ssl2.cpython-39.pyc
index 5529d054..8b20a3ed 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_ssl2.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_ssl2.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_ssl3.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_ssl3.cpython-39.pyc
index 15701049..1f51b5b8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_ssl3.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_ssl3.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_sslgte279.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_sslgte279.cpython-39.pyc
index 6aca656e..626423f3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_sslgte279.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_sslgte279.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_tblib.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_tblib.cpython-39.pyc
index 91e1e0b8..96d2a730 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_tblib.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_tblib.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_threading.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_threading.cpython-39.pyc
index 4b0ae337..2b98801d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_threading.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_threading.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_tracer.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_tracer.cpython-39.pyc
index c6a6dff1..11711b89 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_tracer.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_tracer.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_util.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_util.cpython-39.pyc
index 89e118e9..8d603b70 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_util.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_util.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_util_py2.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_util_py2.cpython-39.pyc
index 6359cc4b..f3075658 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_util_py2.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_util_py2.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_waiter.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_waiter.cpython-39.pyc
index 861274f6..071cd5ce 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_waiter.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/_waiter.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/ares.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/ares.cpython-39.pyc
index 7887583a..97700540 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/ares.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/ares.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/backdoor.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/backdoor.cpython-39.pyc
index 5672647a..b58ba671 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/backdoor.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/backdoor.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/baseserver.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/baseserver.cpython-39.pyc
index 2cdbf307..41e9a624 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/baseserver.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/baseserver.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/builtins.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/builtins.cpython-39.pyc
index 4aa51db5..80523ad2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/builtins.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/builtins.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/contextvars.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/contextvars.cpython-39.pyc
index f1199ea1..36f0814f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/contextvars.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/contextvars.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/core.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/core.cpython-39.pyc
index c8a3a814..af6ec0fa 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/core.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/core.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/event.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/event.cpython-39.pyc
index 033cb280..611c9b81 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/event.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/event.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/events.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/events.cpython-39.pyc
index 1bc84c84..5fbaf1df 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/events.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/events.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/exceptions.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/exceptions.cpython-39.pyc
index 01ced578..e7dae5c3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/exceptions.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/exceptions.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/fileobject.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/fileobject.cpython-39.pyc
index 0f7cefdf..5ab1609c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/fileobject.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/fileobject.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/greenlet.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/greenlet.cpython-39.pyc
index c97efe8c..dc744cd7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/greenlet.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/greenlet.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/hub.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/hub.cpython-39.pyc
index d05bcaa2..83a2547e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/hub.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/hub.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/local.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/local.cpython-39.pyc
index a19ee280..3431f45e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/local.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/local.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/lock.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/lock.cpython-39.pyc
index 84177743..d7d517ad 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/lock.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/lock.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/monkey.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/monkey.cpython-39.pyc
index c12b025b..912eaa96 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/monkey.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/monkey.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/os.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/os.cpython-39.pyc
index 25f351fd..31981d60 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/os.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/os.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/pool.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/pool.cpython-39.pyc
index e4075995..96f4456c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/pool.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/pool.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/pywsgi.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/pywsgi.cpython-39.pyc
index 4d3c9e31..c03230dd 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/pywsgi.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/pywsgi.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/queue.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/queue.cpython-39.pyc
index ffec891b..19c3b8b7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/queue.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/queue.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/resolver_ares.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/resolver_ares.cpython-39.pyc
index 32a13a26..f60030c8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/resolver_ares.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/resolver_ares.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/resolver_thread.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/resolver_thread.cpython-39.pyc
index e85f4825..59325cd5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/resolver_thread.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/resolver_thread.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/select.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/select.cpython-39.pyc
index 74d56761..d18891bd 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/select.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/select.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/selectors.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/selectors.cpython-39.pyc
index c099f244..ce13585e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/selectors.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/selectors.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/server.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/server.cpython-39.pyc
index 42c3fc69..a1b8c9d7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/server.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/server.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/signal.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/signal.cpython-39.pyc
index 7716c522..f6e73cdd 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/signal.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/signal.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/socket.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/socket.cpython-39.pyc
index b886235e..bd4a5eba 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/socket.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/socket.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/ssl.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/ssl.cpython-39.pyc
index 9e74f81d..a2560d06 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/ssl.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/ssl.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/subprocess.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/subprocess.cpython-39.pyc
index 3c2cb51b..0aaa36dd 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/subprocess.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/subprocess.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/thread.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/thread.cpython-39.pyc
index 81a71f8e..f21a45fe 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/thread.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/thread.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/threading.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/threading.cpython-39.pyc
index 6b84d805..313ab6ab 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/threading.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/threading.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/threadpool.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/threadpool.cpython-39.pyc
index c31dd1c9..d4d8cd2f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/threadpool.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/threadpool.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/time.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/time.cpython-39.pyc
index 8f20345a..7e329ef1 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/time.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/time.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/timeout.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/timeout.cpython-39.pyc
index ecbbcc7c..351aa55f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/timeout.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/timeout.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/util.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/util.cpython-39.pyc
index ac112940..3ac57d71 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/util.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/util.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/win32util.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/win32util.cpython-39.pyc
index 60433746..8da9410a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/win32util.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/__pycache__/win32util.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/_ffi/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/_ffi/__pycache__/__init__.cpython-39.pyc
index 4177111c..0ac33a09 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/_ffi/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/_ffi/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/_ffi/__pycache__/callback.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/_ffi/__pycache__/callback.cpython-39.pyc
index 2ed452a0..bb46d666 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/_ffi/__pycache__/callback.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/_ffi/__pycache__/callback.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/_ffi/__pycache__/loop.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/_ffi/__pycache__/loop.cpython-39.pyc
index 2de9a66c..d94d45a5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/_ffi/__pycache__/loop.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/_ffi/__pycache__/loop.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/_ffi/__pycache__/watcher.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/_ffi/__pycache__/watcher.cpython-39.pyc
index 4b73ad52..927819ec 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/_ffi/__pycache__/watcher.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/_ffi/__pycache__/watcher.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/libev/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/libev/__pycache__/__init__.cpython-39.pyc
index 27456b86..dac44e13 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/libev/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/libev/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/libev/__pycache__/_corecffi_build.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/libev/__pycache__/_corecffi_build.cpython-39.pyc
index 3f204d93..da1a8784 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/libev/__pycache__/_corecffi_build.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/libev/__pycache__/_corecffi_build.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/libev/__pycache__/corecffi.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/libev/__pycache__/corecffi.cpython-39.pyc
index f91983fd..31f0e3cd 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/libev/__pycache__/corecffi.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/libev/__pycache__/corecffi.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/libev/__pycache__/watcher.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/libev/__pycache__/watcher.cpython-39.pyc
index 960a0237..c6e6ef9f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/libev/__pycache__/watcher.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/libev/__pycache__/watcher.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/libuv/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/libuv/__pycache__/__init__.cpython-39.pyc
index 12eb7561..ff8b6bf3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/libuv/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/libuv/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/libuv/__pycache__/_corecffi_build.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/libuv/__pycache__/_corecffi_build.cpython-39.pyc
index e278a3b4..43295e69 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/libuv/__pycache__/_corecffi_build.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/libuv/__pycache__/_corecffi_build.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/libuv/__pycache__/loop.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/libuv/__pycache__/loop.cpython-39.pyc
index a765cb61..089b5aae 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/libuv/__pycache__/loop.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/libuv/__pycache__/loop.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/libuv/__pycache__/watcher.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/libuv/__pycache__/watcher.cpython-39.pyc
index 1fa2d99d..5567e90c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/libuv/__pycache__/watcher.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/libuv/__pycache__/watcher.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/__init__.cpython-39.pyc
index 13a6398e..dbf71368 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/_addresses.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/_addresses.cpython-39.pyc
index 2148e800..dc06d7ef 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/_addresses.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/_addresses.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/_hostsfile.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/_hostsfile.cpython-39.pyc
index 1c38f39b..311ce60d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/_hostsfile.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/_hostsfile.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/ares.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/ares.cpython-39.pyc
index e23729c1..35b5f576 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/ares.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/ares.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/blocking.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/blocking.cpython-39.pyc
index 928add3a..f1f03c3e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/blocking.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/blocking.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/dnspython.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/dnspython.cpython-39.pyc
index 942e5def..1f8ba1eb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/dnspython.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/dnspython.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/thread.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/thread.cpython-39.pyc
index 6b469337..3ae54f17 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/thread.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/resolver/__pycache__/thread.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/__init__.cpython-39.pyc
index 3b666f05..169b6761 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/errorhandler.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/errorhandler.cpython-39.pyc
index 2b67911d..d5d40487 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/errorhandler.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/errorhandler.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/exception.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/exception.cpython-39.pyc
index 6ea2b10f..e82d238b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/exception.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/exception.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/flaky.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/flaky.cpython-39.pyc
index db8ce428..fe96eab3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/flaky.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/flaky.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/hub.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/hub.cpython-39.pyc
index 7675c021..391dfb8b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/hub.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/hub.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/leakcheck.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/leakcheck.cpython-39.pyc
index 2b26d67e..8435b4d7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/leakcheck.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/leakcheck.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/modules.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/modules.cpython-39.pyc
index 34e25ae9..7733ce2e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/modules.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/modules.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/monkey_test.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/monkey_test.cpython-39.pyc
index d9a53a9f..1b135cd7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/monkey_test.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/monkey_test.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/openfiles.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/openfiles.cpython-39.pyc
index 9ba8fecd..f8dc6a5b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/openfiles.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/openfiles.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/params.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/params.cpython-39.pyc
index 4c629795..b08de84c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/params.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/params.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/patched_tests_setup.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/patched_tests_setup.cpython-39.pyc
index e6fc87da..3488e5f9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/patched_tests_setup.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/patched_tests_setup.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/resources.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/resources.cpython-39.pyc
index bf6425e5..63a6b930 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/resources.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/resources.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/six.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/six.cpython-39.pyc
index bd3622d7..86c94bbb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/six.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/six.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/skipping.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/skipping.cpython-39.pyc
index e3556654..9ca2c017 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/skipping.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/skipping.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/sockets.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/sockets.cpython-39.pyc
index e8ae4dac..fe716897 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/sockets.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/sockets.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/support.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/support.cpython-39.pyc
index 84c37189..78b83655 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/support.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/support.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/switching.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/switching.cpython-39.pyc
index 8785ed30..183830d6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/switching.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/switching.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/sysinfo.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/sysinfo.cpython-39.pyc
index d28779f4..58506d36 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/sysinfo.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/sysinfo.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/testcase.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/testcase.cpython-39.pyc
index 835ca71e..014b9e3d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/testcase.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/testcase.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/testrunner.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/testrunner.cpython-39.pyc
index 2f4f6951..fd31a87a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/testrunner.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/testrunner.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/timing.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/timing.cpython-39.pyc
index eeacc1ec..f6d48005 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/timing.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/timing.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/travis.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/travis.cpython-39.pyc
index 66ebda1b..62410569 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/travis.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/travis.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/util.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/util.cpython-39.pyc
index 89e7691d..25666688 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/util.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/__pycache__/util.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/coveragesite/__pycache__/sitecustomize.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/coveragesite/__pycache__/sitecustomize.cpython-39.pyc
index 56b5035f..f1a3a295 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/coveragesite/__pycache__/sitecustomize.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/testing/coveragesite/__pycache__/sitecustomize.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/__init__.cpython-39.pyc
index ed99d31f..7db021e8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/__main__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/__main__.cpython-39.pyc
index 659ed338..f30f551b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/__main__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/__main__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_blocks_at_top_level.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_blocks_at_top_level.cpython-39.pyc
index cf4a3041..0e3a17ae 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_blocks_at_top_level.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_blocks_at_top_level.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_import_import_patch.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_import_import_patch.cpython-39.pyc
index 83d1beda..02238854 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_import_import_patch.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_import_import_patch.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_import_patch.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_import_patch.cpython-39.pyc
index f5554d3a..83afaf58 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_import_patch.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_import_patch.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_import_wait.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_import_wait.cpython-39.pyc
index 9480c9f5..fd9c62f5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_import_wait.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_import_wait.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_imports_at_top_level.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_imports_at_top_level.cpython-39.pyc
index 395b6ce6..701d3f2d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_imports_at_top_level.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_imports_at_top_level.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_imports_imports_at_top_level.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_imports_imports_at_top_level.cpython-39.pyc
index 4a67f109..a6fb91a6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_imports_imports_at_top_level.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/_imports_imports_at_top_level.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/getaddrinfo_module.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/getaddrinfo_module.cpython-39.pyc
index c2f59904..e746d501 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/getaddrinfo_module.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/getaddrinfo_module.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/known_failures.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/known_failures.cpython-39.pyc
index 7ef805c5..4f4269c0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/known_failures.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/known_failures.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/lock_tests.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/lock_tests.cpython-39.pyc
index bc718555..5549bc7b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/lock_tests.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/lock_tests.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__GreenletExit.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__GreenletExit.cpython-39.pyc
index 1ad42c0e..622f5bed 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__GreenletExit.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__GreenletExit.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test___config.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test___config.cpython-39.pyc
index 700a08ff..81e04ba6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test___config.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test___config.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test___ident.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test___ident.cpython-39.pyc
index 7d977c05..29c8a41c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test___ident.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test___ident.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test___monitor.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test___monitor.cpython-39.pyc
index 619ff5af..2dda2aa6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test___monitor.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test___monitor.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test___monkey_patching.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test___monkey_patching.cpython-39.pyc
index db7f5579..1e5e5564 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test___monkey_patching.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test___monkey_patching.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__all__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__all__.cpython-39.pyc
index 44326f38..246fa7b9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__all__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__all__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__api.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__api.cpython-39.pyc
index 0fee95bc..b86a7fae 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__api.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__api.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__api_timeout.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__api_timeout.cpython-39.pyc
index 7215f79d..b43f34d2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__api_timeout.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__api_timeout.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__ares_host_result.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__ares_host_result.cpython-39.pyc
index 3b1ef9eb..04d35355 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__ares_host_result.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__ares_host_result.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__ares_timeout.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__ares_timeout.cpython-39.pyc
index af282d57..198b9920 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__ares_timeout.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__ares_timeout.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__backdoor.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__backdoor.cpython-39.pyc
index ebfac93f..9364638f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__backdoor.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__backdoor.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__close_backend_fd.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__close_backend_fd.cpython-39.pyc
index 574219b8..ef446894 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__close_backend_fd.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__close_backend_fd.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__compat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__compat.cpython-39.pyc
index 1d6ad495..30da4162 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__compat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__compat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__contextvars.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__contextvars.cpython-39.pyc
index 8a2aca4a..116bd231 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__contextvars.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__contextvars.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core.cpython-39.pyc
index 6311588c..62a26562 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_async.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_async.cpython-39.pyc
index b173eed2..2c63479f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_async.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_async.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_callback.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_callback.cpython-39.pyc
index e598ba63..fd08c174 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_callback.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_callback.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_fork.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_fork.cpython-39.pyc
index c05b769e..ff7c43e8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_fork.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_fork.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_loop_run.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_loop_run.cpython-39.pyc
index 4f838d14..98400f4b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_loop_run.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_loop_run.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_stat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_stat.cpython-39.pyc
index 2b5ccf12..c120b088 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_stat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_stat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_timer.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_timer.cpython-39.pyc
index 80722361..659d9df3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_timer.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_timer.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_watcher.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_watcher.cpython-39.pyc
index 26a17706..ec90797f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_watcher.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__core_watcher.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__destroy.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__destroy.cpython-39.pyc
index 5bdd0d91..b01ac20d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__destroy.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__destroy.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__destroy_default_loop.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__destroy_default_loop.cpython-39.pyc
index bab2348d..42117ec1 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__destroy_default_loop.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__destroy_default_loop.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__doctests.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__doctests.cpython-39.pyc
index d574b999..32ec9579 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__doctests.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__doctests.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__environ.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__environ.cpython-39.pyc
index ef0a86b3..f42d4e16 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__environ.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__environ.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__event.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__event.cpython-39.pyc
index 794284d9..1dafcba6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__event.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__event.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__events.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__events.cpython-39.pyc
index 73329fc2..a3af375d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__events.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__events.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_echoserver.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_echoserver.cpython-39.pyc
index 67ddcf02..092dab08 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_echoserver.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_echoserver.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_portforwarder.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_portforwarder.cpython-39.pyc
index 7d5d0365..fe15a866 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_portforwarder.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_portforwarder.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_udp_client.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_udp_client.cpython-39.pyc
index 4c2072ea..196e6319 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_udp_client.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_udp_client.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_udp_server.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_udp_server.cpython-39.pyc
index 54bf4775..7434cf28 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_udp_server.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_udp_server.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_webproxy.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_webproxy.cpython-39.pyc
index 81f1f934..e86c2cf6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_webproxy.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_webproxy.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_wsgiserver.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_wsgiserver.cpython-39.pyc
index 1447938c..3db11749 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_wsgiserver.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_wsgiserver.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_wsgiserver_ssl.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_wsgiserver_ssl.cpython-39.pyc
index eda6b46e..862238d4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_wsgiserver_ssl.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__example_wsgiserver_ssl.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__examples.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__examples.cpython-39.pyc
index c87d5f4b..3db82dfb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__examples.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__examples.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__exc_info.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__exc_info.cpython-39.pyc
index 93ac6144..81c480ba 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__exc_info.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__exc_info.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__execmodules.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__execmodules.cpython-39.pyc
index 710cbef6..6d9f24fb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__execmodules.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__execmodules.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__fileobject.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__fileobject.cpython-39.pyc
index da8b1a4d..63dd5edb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__fileobject.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__fileobject.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__getaddrinfo_import.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__getaddrinfo_import.cpython-39.pyc
index 0239a1e3..54e254a8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__getaddrinfo_import.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__getaddrinfo_import.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__greenio.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__greenio.cpython-39.pyc
index 332da701..2ffd9916 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__greenio.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__greenio.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__greenlet.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__greenlet.cpython-39.pyc
index 6fc880d9..ebc95c69 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__greenlet.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__greenlet.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__greenletset.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__greenletset.cpython-39.pyc
index 26cda686..eb937b9c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__greenletset.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__greenletset.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__greenness.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__greenness.cpython-39.pyc
index 44d461a4..911fb5a7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__greenness.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__greenness.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__hub.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__hub.cpython-39.pyc
index 998c3898..543e7d34 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__hub.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__hub.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__hub_join.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__hub_join.cpython-39.pyc
index dcbe733e..9c2ea573 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__hub_join.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__hub_join.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__hub_join_timeout.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__hub_join_timeout.cpython-39.pyc
index 6fb62ceb..85beb51d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__hub_join_timeout.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__hub_join_timeout.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__import_blocking_in_greenlet.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__import_blocking_in_greenlet.cpython-39.pyc
index b1470b0c..9618e44e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__import_blocking_in_greenlet.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__import_blocking_in_greenlet.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__import_wait.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__import_wait.cpython-39.pyc
index 6506eedc..5599c5b2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__import_wait.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__import_wait.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue112.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue112.cpython-39.pyc
index e77d8238..0ce1ca55 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue112.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue112.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue1686.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue1686.cpython-39.pyc
index 5f47ed4e..d55b57b2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue1686.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue1686.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue230.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue230.cpython-39.pyc
index f21ba38e..21687eea 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue230.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue230.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue330.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue330.cpython-39.pyc
index c6621d21..a16f925d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue330.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue330.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue467.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue467.cpython-39.pyc
index e61b68f8..17cf403a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue467.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue467.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue6.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue6.cpython-39.pyc
index 7b6b4d69..5353ce72 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue6.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue6.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue600.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue600.cpython-39.pyc
index 05e79a70..99f93977 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue600.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue600.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue607.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue607.cpython-39.pyc
index 75114be6..027cf1f3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue607.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue607.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue639.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue639.cpython-39.pyc
index a3556c32..98523738 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue639.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue639.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue_728.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue_728.cpython-39.pyc
index fa008241..ce6a36bd 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue_728.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issue_728.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issues461_471.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issues461_471.cpython-39.pyc
index 08d5e429..bcd858e4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issues461_471.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__issues461_471.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__iwait.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__iwait.cpython-39.pyc
index 11b917a3..4d55dc43 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__iwait.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__iwait.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__joinall.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__joinall.cpython-39.pyc
index bfa6e307..de82892b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__joinall.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__joinall.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__local.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__local.cpython-39.pyc
index 1e46ab07..261ae083 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__local.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__local.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__lock.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__lock.cpython-39.pyc
index 58025afa..67e95a94 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__lock.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__lock.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__loop_callback.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__loop_callback.cpython-39.pyc
index 8a71ffe3..9a2fd7a2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__loop_callback.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__loop_callback.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__makefile_ref.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__makefile_ref.cpython-39.pyc
index b0406fbd..cebbfd3e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__makefile_ref.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__makefile_ref.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__memleak.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__memleak.cpython-39.pyc
index c4e756ec..ef2e256f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__memleak.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__memleak.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey.cpython-39.pyc
index 826ebc6f..57de6236 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_builtins_future.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_builtins_future.cpython-39.pyc
index b1ae004b..8b87d6a9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_builtins_future.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_builtins_future.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_futures_thread.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_futures_thread.cpython-39.pyc
index e8f0f9f7..73cbc848 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_futures_thread.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_futures_thread.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_hub_in_thread.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_hub_in_thread.cpython-39.pyc
index 44ec84a9..f02d513f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_hub_in_thread.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_hub_in_thread.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_logging.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_logging.cpython-39.pyc
index 82c25a39..518c4462 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_logging.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_logging.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_module_run.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_module_run.cpython-39.pyc
index ee2c8408..fedae8b3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_module_run.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_module_run.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_multiple_imports.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_multiple_imports.cpython-39.pyc
index 9c2159ef..ce6d39c8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_multiple_imports.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_multiple_imports.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_queue.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_queue.cpython-39.pyc
index bfa048f3..40b25d16 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_queue.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_queue.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_select.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_select.cpython-39.pyc
index b4959991..1a9a602d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_select.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_select.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_selectors.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_selectors.cpython-39.pyc
index 0ba6920e..3af81047 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_selectors.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_selectors.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_sigchld.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_sigchld.cpython-39.pyc
index 9e133872..19709afd 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_sigchld.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_sigchld.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_sigchld_2.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_sigchld_2.cpython-39.pyc
index a9900b4d..b3b21bd8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_sigchld_2.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_sigchld_2.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_sigchld_3.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_sigchld_3.cpython-39.pyc
index 696adecb..e0bc8832 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_sigchld_3.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_sigchld_3.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_ssl_warning.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_ssl_warning.cpython-39.pyc
index 9f546576..7479528e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_ssl_warning.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_ssl_warning.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_ssl_warning2.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_ssl_warning2.cpython-39.pyc
index 1f2d5ccc..35c200be 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_ssl_warning2.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_ssl_warning2.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_ssl_warning3.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_ssl_warning3.cpython-39.pyc
index 1a4a613b..919b558f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_ssl_warning3.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__monkey_ssl_warning3.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__nondefaultloop.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__nondefaultloop.cpython-39.pyc
index d1427dd4..7503b850 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__nondefaultloop.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__nondefaultloop.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__order.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__order.cpython-39.pyc
index 83aafe67..43b29b5d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__order.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__order.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__os.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__os.cpython-39.pyc
index 4f744dcd..2ed305eb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__os.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__os.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__pool.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__pool.cpython-39.pyc
index a5649365..7315f04e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__pool.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__pool.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__pywsgi.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__pywsgi.cpython-39.pyc
index 1fff1200..f68acbb5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__pywsgi.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__pywsgi.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__queue.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__queue.cpython-39.pyc
index ffd0bc64..c3ee31cf 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__queue.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__queue.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__real_greenlet.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__real_greenlet.cpython-39.pyc
index 3c3c9f1f..60a9369d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__real_greenlet.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__real_greenlet.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__refcount.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__refcount.cpython-39.pyc
index 5c412a74..d298f300 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__refcount.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__refcount.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__refcount_core.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__refcount_core.cpython-39.pyc
index d5d92439..450a34f2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__refcount_core.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__refcount_core.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__resolver_dnspython.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__resolver_dnspython.cpython-39.pyc
index b195663d..88234df2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__resolver_dnspython.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__resolver_dnspython.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__select.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__select.cpython-39.pyc
index 336f1c2e..8e4ba124 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__select.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__select.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__selectors.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__selectors.cpython-39.pyc
index a07758c2..36420751 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__selectors.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__selectors.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__semaphore.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__semaphore.cpython-39.pyc
index 348c76f8..60fc9615 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__semaphore.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__semaphore.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__server.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__server.cpython-39.pyc
index 83d9838c..6635ca8d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__server.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__server.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__server_pywsgi.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__server_pywsgi.cpython-39.pyc
index 277c032a..b5fe6ac6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__server_pywsgi.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__server_pywsgi.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__signal.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__signal.cpython-39.pyc
index 0178bc3f..5455fb03 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__signal.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__signal.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__sleep0.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__sleep0.cpython-39.pyc
index 3e6a790e..a20120f2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__sleep0.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__sleep0.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket.cpython-39.pyc
index 254ad97d..8e60e1d0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_close.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_close.cpython-39.pyc
index 973caaa6..11b202b0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_close.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_close.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_dns.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_dns.cpython-39.pyc
index f24e11b6..8517dd39 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_dns.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_dns.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_dns6.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_dns6.cpython-39.pyc
index 65138fad..29471cc0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_dns6.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_dns6.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_errors.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_errors.cpython-39.pyc
index 7a045087..77ae4d63 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_errors.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_errors.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_ex.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_ex.cpython-39.pyc
index 4f0bcc5d..a5e57ff8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_ex.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_ex.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_send_memoryview.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_send_memoryview.cpython-39.pyc
index 83dd538a..66c5d330 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_send_memoryview.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_send_memoryview.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_ssl.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_ssl.cpython-39.pyc
index 6904fb4a..dec2219f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_ssl.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_ssl.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_timeout.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_timeout.cpython-39.pyc
index 31b7d2cb..6855028e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_timeout.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socket_timeout.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socketpair.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socketpair.cpython-39.pyc
index 15e026b6..f0747d89 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socketpair.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__socketpair.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__ssl.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__ssl.cpython-39.pyc
index cb9866b7..730a57f1 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__ssl.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__ssl.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__subprocess.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__subprocess.cpython-39.pyc
index d7763f6f..164673e8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__subprocess.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__subprocess.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__subprocess_interrupted.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__subprocess_interrupted.cpython-39.pyc
index 2a13dca8..b31c0dc4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__subprocess_interrupted.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__subprocess_interrupted.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__subprocess_poll.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__subprocess_poll.cpython-39.pyc
index 90176621..170e7069 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__subprocess_poll.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__subprocess_poll.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__systemerror.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__systemerror.cpython-39.pyc
index b616d28d..f489e3d5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__systemerror.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__systemerror.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__thread.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__thread.cpython-39.pyc
index eb1a418d..d2af73ae 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__thread.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__thread.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading.cpython-39.pyc
index 0d1af820..ac8a2c07 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_2.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_2.cpython-39.pyc
index 94188387..285a7bb9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_2.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_2.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_before_monkey.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_before_monkey.cpython-39.pyc
index 2f7bfb44..79d2ee0a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_before_monkey.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_before_monkey.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_holding_lock_while_monkey.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_holding_lock_while_monkey.cpython-39.pyc
index e84bb7b0..498ce798 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_holding_lock_while_monkey.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_holding_lock_while_monkey.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_monkey_in_thread.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_monkey_in_thread.cpython-39.pyc
index f28ba476..25d6b26e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_monkey_in_thread.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_monkey_in_thread.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_native_before_monkey.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_native_before_monkey.cpython-39.pyc
index ff06ec29..20579539 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_native_before_monkey.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_native_before_monkey.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_no_monkey.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_no_monkey.cpython-39.pyc
index 3efb2d28..6bb197e8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_no_monkey.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_no_monkey.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_patched_local.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_patched_local.cpython-39.pyc
index 09c3ac42..a80d312c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_patched_local.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_patched_local.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_vs_settrace.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_vs_settrace.cpython-39.pyc
index 42d4449d..1775dfe8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_vs_settrace.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threading_vs_settrace.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threadpool.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threadpool.cpython-39.pyc
index 423766fa..1cfce1bd 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threadpool.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threadpool.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threadpool_executor_patched.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threadpool_executor_patched.cpython-39.pyc
index 676231b1..53e4b81d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threadpool_executor_patched.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__threadpool_executor_patched.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__timeout.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__timeout.cpython-39.pyc
index 0ba275cc..7ffcc4fd 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__timeout.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__timeout.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__util.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__util.cpython-39.pyc
index 37854a1d..18c4f614 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__util.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/__pycache__/test__util.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/__init__.cpython-39.pyc
index 93f4329b..419feff3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/__main__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/__main__.cpython-39.pyc
index 3351136d..e0622a8d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/__main__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/__main__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/issue1526_no_monkey.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/issue1526_no_monkey.cpython-39.pyc
index 1f357c93..8db5518c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/issue1526_no_monkey.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/issue1526_no_monkey.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/issue1526_with_monkey.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/issue1526_with_monkey.cpython-39.pyc
index 929fbae3..8e048e41 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/issue1526_with_monkey.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/issue1526_with_monkey.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/issue302monkey.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/issue302monkey.cpython-39.pyc
index f0cba499..4470f54b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/issue302monkey.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/issue302monkey.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/script.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/script.cpython-39.pyc
index 47196ef2..830ed110 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/script.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/script.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/threadpool_monkey_patches.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/threadpool_monkey_patches.cpython-39.pyc
index 76987926..85dd5382 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/threadpool_monkey_patches.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/threadpool_monkey_patches.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/threadpool_no_monkey.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/threadpool_no_monkey.cpython-39.pyc
index d865d5f5..be073643 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/threadpool_no_monkey.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/gevent/tests/monkey_package/__pycache__/threadpool_no_monkey.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/__init__.cpython-39.pyc
index b62c003f..eb212fcc 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/_compat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/_compat.cpython-39.pyc
index 9e2b9488..eb76cd26 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/_compat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/_compat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/exceptions.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/exceptions.cpython-39.pyc
index 39759221..684037f0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/exceptions.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/exceptions.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/handler.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/handler.cpython-39.pyc
index 5c76d84f..dd984926 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/handler.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/handler.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/logging.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/logging.cpython-39.pyc
index 7374e870..a5948b69 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/logging.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/logging.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/resource.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/resource.cpython-39.pyc
index db20d981..03bbc92c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/resource.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/resource.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/server.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/server.cpython-39.pyc
index e61bc9af..b80e7bb3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/server.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/server.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/utf8validator.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/utf8validator.cpython-39.pyc
index eb833a69..4a0ecb98 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/utf8validator.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/utf8validator.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/utils.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/utils.cpython-39.pyc
index 46ef731b..7f758449 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/utils.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/utils.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/websocket.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/websocket.cpython-39.pyc
index 314d59e3..81e6341c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/websocket.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/__pycache__/websocket.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/gunicorn/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/gunicorn/__pycache__/__init__.cpython-39.pyc
index 37411a32..de97d5f5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/gunicorn/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/gunicorn/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/gunicorn/__pycache__/workers.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/gunicorn/__pycache__/workers.cpython-39.pyc
index 6943010d..bac6611c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/gunicorn/__pycache__/workers.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/gunicorn/__pycache__/workers.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/protocols/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/protocols/__pycache__/__init__.cpython-39.pyc
index 479cb4c2..109d77ec 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/protocols/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/protocols/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/protocols/__pycache__/base.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/protocols/__pycache__/base.cpython-39.pyc
index 9625cd3c..be3e0da3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/protocols/__pycache__/base.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/protocols/__pycache__/base.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/protocols/__pycache__/wamp.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/protocols/__pycache__/wamp.cpython-39.pyc
index 10d6dd24..99b759fc 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/protocols/__pycache__/wamp.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/geventwebsocket/protocols/__pycache__/wamp.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/greenlet/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/greenlet/__pycache__/__init__.cpython-39.pyc
index 6b4bae53..25661c70 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/greenlet/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/greenlet/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/__init__.cpython-39.pyc
index 6aed7212..7966ae90 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_contextvars.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_contextvars.cpython-39.pyc
index d3f06353..7d669b7f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_contextvars.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_contextvars.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_cpp.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_cpp.cpython-39.pyc
index eba83d37..7266c392 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_cpp.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_cpp.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_extension_interface.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_extension_interface.cpython-39.pyc
index d7471267..456ab844 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_extension_interface.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_extension_interface.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_gc.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_gc.cpython-39.pyc
index 23c7874c..f921fab1 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_gc.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_gc.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_generator.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_generator.cpython-39.pyc
index 99dd34b6..e1795692 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_generator.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_generator.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_generator_nested.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_generator_nested.cpython-39.pyc
index 8d80095f..bb6b38d9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_generator_nested.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_generator_nested.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_greenlet.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_greenlet.cpython-39.pyc
index 5a4391ef..ece919be 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_greenlet.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_greenlet.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_leaks.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_leaks.cpython-39.pyc
index 587498da..b75667ad 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_leaks.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_leaks.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_stack_saved.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_stack_saved.cpython-39.pyc
index cabad998..88a07e24 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_stack_saved.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_stack_saved.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_throw.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_throw.cpython-39.pyc
index d33c01fa..74c3fae4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_throw.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_throw.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_tracing.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_tracing.cpython-39.pyc
index c766e1b3..0f5fe0a8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_tracing.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_tracing.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_version.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_version.cpython-39.pyc
index 1e6b69ee..c9726680 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_version.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_version.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_weakref.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_weakref.cpython-39.pyc
index 6f3838a6..a01f7b8d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_weakref.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/greenlet/tests/__pycache__/test_weakref.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/__init__.cpython-39.pyc
index 59ef6aa0..700f1362 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/codec.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/codec.cpython-39.pyc
index ccae9bc3..23eb6677 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/codec.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/codec.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/compat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/compat.cpython-39.pyc
index 06e6f35e..98ac4cb5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/compat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/compat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/core.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/core.cpython-39.pyc
index 98746bd8..0574c214 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/core.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/core.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/idnadata.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/idnadata.cpython-39.pyc
index 1419e100..b910a3dc 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/idnadata.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/idnadata.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/intranges.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/intranges.cpython-39.pyc
index f6e93d4f..da9b7bb4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/intranges.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/intranges.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/package_data.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/package_data.cpython-39.pyc
index 33cde993..a05f78d9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/package_data.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/package_data.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/uts46data.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/uts46data.cpython-39.pyc
index 63694084..530ba60b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/uts46data.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/idna/__pycache__/uts46data.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/__pycache__/__init__.cpython-39.pyc
index 86883c31..e9512868 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/__pycache__/fixer_util.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/__pycache__/fixer_util.cpython-39.pyc
index f9ae59e4..eaf59f8d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/__pycache__/fixer_util.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/__pycache__/fixer_util.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/__pycache__/main.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/__pycache__/main.cpython-39.pyc
index 061a7ec8..9771582c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/__pycache__/main.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/__pycache__/main.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/__init__.cpython-39.pyc
index 7e17b6f3..bc8b5b86 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_UserDict.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_UserDict.cpython-39.pyc
index 73b6ea67..03a75ea6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_UserDict.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_UserDict.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_absolute_import.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_absolute_import.cpython-39.pyc
index 6d701e8c..0682d8aa 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_absolute_import.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_absolute_import.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_add__future__imports_except_unicode_literals.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_add__future__imports_except_unicode_literals.cpython-39.pyc
index 7572f302..7fe6c542 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_add__future__imports_except_unicode_literals.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_add__future__imports_except_unicode_literals.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_basestring.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_basestring.cpython-39.pyc
index 59dd1674..cb6acbc6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_basestring.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_basestring.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_bytes.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_bytes.cpython-39.pyc
index 4511667e..5e48112b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_bytes.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_bytes.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_cmp.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_cmp.cpython-39.pyc
index 76ba15a2..ab0377d5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_cmp.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_cmp.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_division.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_division.cpython-39.pyc
index 62c55f14..29897bf0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_division.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_division.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_division_safe.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_division_safe.cpython-39.pyc
index c807e13a..5cfe8775 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_division_safe.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_division_safe.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_execfile.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_execfile.cpython-39.pyc
index f5cc8f76..9b6b6832 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_execfile.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_execfile.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_future_builtins.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_future_builtins.cpython-39.pyc
index f9808a16..8e6b0717 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_future_builtins.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_future_builtins.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_future_standard_library.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_future_standard_library.cpython-39.pyc
index e07fc7e1..d46d1c01 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_future_standard_library.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_future_standard_library.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_future_standard_library_urllib.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_future_standard_library_urllib.cpython-39.pyc
index 21466210..e83d39c0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_future_standard_library_urllib.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_future_standard_library_urllib.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_input.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_input.cpython-39.pyc
index a5d625e5..6a5be849 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_input.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_input.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_metaclass.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_metaclass.cpython-39.pyc
index 99a16005..40c009ae 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_metaclass.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_metaclass.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_next_call.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_next_call.cpython-39.pyc
index c88e4cf7..65524a96 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_next_call.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_next_call.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_object.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_object.cpython-39.pyc
index 2d16e551..4c1e42b4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_object.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_object.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_oldstr_wrap.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_oldstr_wrap.cpython-39.pyc
index 1faea2d9..947708ae 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_oldstr_wrap.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_oldstr_wrap.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_order___future__imports.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_order___future__imports.cpython-39.pyc
index 308bd7aa..e59cb89c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_order___future__imports.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_order___future__imports.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_print.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_print.cpython-39.pyc
index c0bbf029..59a16a1e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_print.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_print.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_print_with_import.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_print_with_import.cpython-39.pyc
index 4ba4d0b9..d05c6dca 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_print_with_import.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_print_with_import.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_raise.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_raise.cpython-39.pyc
index 7284cb7a..2b787977 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_raise.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_raise.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_remove_old__future__imports.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_remove_old__future__imports.cpython-39.pyc
index 059f69ac..3cd525b6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_remove_old__future__imports.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_remove_old__future__imports.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_unicode_keep_u.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_unicode_keep_u.cpython-39.pyc
index 00d156dc..625db52e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_unicode_keep_u.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_unicode_keep_u.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_unicode_literals_import.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_unicode_literals_import.cpython-39.pyc
index a3c38da8..5f9d71eb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_unicode_literals_import.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_unicode_literals_import.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_xrange_with_import.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_xrange_with_import.cpython-39.pyc
index a5ce6fe0..da06ef17 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_xrange_with_import.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libfuturize/fixes/__pycache__/fix_xrange_with_import.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/__pycache__/__init__.cpython-39.pyc
index 343f8619..7096771e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/__pycache__/main.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/__pycache__/main.cpython-39.pyc
index 24bcb791..9135c75a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/__pycache__/main.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/__pycache__/main.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/__init__.cpython-39.pyc
index 8dac4ba2..cc2b61db 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/feature_base.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/feature_base.cpython-39.pyc
index e4c1fd44..e2fc8545 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/feature_base.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/feature_base.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_add_all__future__imports.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_add_all__future__imports.cpython-39.pyc
index c4acaab9..f7ae3a1f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_add_all__future__imports.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_add_all__future__imports.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_add_all_future_builtins.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_add_all_future_builtins.cpython-39.pyc
index 1922f639..ffaaf9f9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_add_all_future_builtins.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_add_all_future_builtins.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_add_future_standard_library_import.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_add_future_standard_library_import.cpython-39.pyc
index 1fdc6945..33e73f1c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_add_future_standard_library_import.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_add_future_standard_library_import.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_annotations.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_annotations.cpython-39.pyc
index 089ed017..088306b0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_annotations.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_annotations.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_division.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_division.cpython-39.pyc
index 45bf7779..c6f129a0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_division.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_division.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_features.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_features.cpython-39.pyc
index c06bbb9f..41c95938 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_features.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_features.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_fullargspec.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_fullargspec.cpython-39.pyc
index 56ffa874..6796ab1b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_fullargspec.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_fullargspec.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_future_builtins.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_future_builtins.cpython-39.pyc
index 3f69fc05..6834d37f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_future_builtins.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_future_builtins.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_getcwd.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_getcwd.cpython-39.pyc
index c4dd6c44..1d1e0837 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_getcwd.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_getcwd.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_imports.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_imports.cpython-39.pyc
index 391d00da..fc0170e0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_imports.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_imports.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_imports2.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_imports2.cpython-39.pyc
index 78c41e76..da749273 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_imports2.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_imports2.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_kwargs.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_kwargs.cpython-39.pyc
index 5c50c309..b26ad65c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_kwargs.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_kwargs.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_memoryview.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_memoryview.cpython-39.pyc
index 0accaa71..050bad99 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_memoryview.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_memoryview.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_metaclass.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_metaclass.cpython-39.pyc
index 505d2909..26783da4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_metaclass.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_metaclass.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_newstyle.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_newstyle.cpython-39.pyc
index df497d33..ee98c0a3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_newstyle.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_newstyle.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_next.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_next.cpython-39.pyc
index a3b62b5a..08b67694 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_next.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_next.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_printfunction.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_printfunction.cpython-39.pyc
index d1df361d..4e4a55e5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_printfunction.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_printfunction.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_raise.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_raise.cpython-39.pyc
index 3fcfc8e5..4258caaa 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_raise.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_raise.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_raise_.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_raise_.cpython-39.pyc
index 5beb8086..0b481353 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_raise_.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_raise_.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_throw.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_throw.cpython-39.pyc
index f6a23581..0df0c915 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_throw.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_throw.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_unpacking.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_unpacking.cpython-39.pyc
index 0cd37e73..4252a9c0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_unpacking.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/libpasteurize/fixes/__pycache__/fix_unpacking.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/markupsafe/__init__.py b/IKEA_scraper/.venv/Lib/site-packages/markupsafe/__init__.py
new file mode 100644
index 00000000..d331ac36
--- /dev/null
+++ b/IKEA_scraper/.venv/Lib/site-packages/markupsafe/__init__.py
@@ -0,0 +1,288 @@
+import functools
+import re
+import string
+import typing as t
+
+if t.TYPE_CHECKING:
+ import typing_extensions as te
+
+ class HasHTML(te.Protocol):
+ def __html__(self) -> str:
+ pass
+
+
+__version__ = "2.0.1"
+
+_striptags_re = re.compile(r"(|<[^>]*>)")
+
+
+def _simple_escaping_wrapper(name: str) -> t.Callable[..., "Markup"]:
+ orig = getattr(str, name)
+
+ @functools.wraps(orig)
+ def wrapped(self: "Markup", *args: t.Any, **kwargs: t.Any) -> "Markup":
+ args = _escape_argspec(list(args), enumerate(args), self.escape) # type: ignore
+ _escape_argspec(kwargs, kwargs.items(), self.escape)
+ return self.__class__(orig(self, *args, **kwargs))
+
+ return wrapped
+
+
+class Markup(str):
+ """A string that is ready to be safely inserted into an HTML or XML
+ document, either because it was escaped or because it was marked
+ safe.
+
+ Passing an object to the constructor converts it to text and wraps
+ it to mark it safe without escaping. To escape the text, use the
+ :meth:`escape` class method instead.
+
+ >>> Markup("Hello, World!")
+ Markup('Hello, World!')
+ >>> Markup(42)
+ Markup('42')
+ >>> Markup.escape("Hello, World!")
+ Markup('Hello <em>World</em>!')
+
+ This implements the ``__html__()`` interface that some frameworks
+ use. Passing an object that implements ``__html__()`` will wrap the
+ output of that method, marking it safe.
+
+ >>> class Foo:
+ ... def __html__(self):
+ ... return 'foo'
+ ...
+ >>> Markup(Foo())
+ Markup('foo')
+
+ This is a subclass of :class:`str`. It has the same methods, but
+ escapes their arguments and returns a ``Markup`` instance.
+
+ >>> Markup("%s") % ("foo & bar",)
+ Markup('foo & bar')
+ >>> Markup("Hello ") + ""
+ Markup('Hello <foo>')
+ """
+
+ __slots__ = ()
+
+ def __new__(
+ cls, base: t.Any = "", encoding: t.Optional[str] = None, errors: str = "strict"
+ ) -> "Markup":
+ if hasattr(base, "__html__"):
+ base = base.__html__()
+
+ if encoding is None:
+ return super().__new__(cls, base)
+
+ return super().__new__(cls, base, encoding, errors)
+
+ def __html__(self) -> "Markup":
+ return self
+
+ def __add__(self, other: t.Union[str, "HasHTML"]) -> "Markup":
+ if isinstance(other, str) or hasattr(other, "__html__"):
+ return self.__class__(super().__add__(self.escape(other)))
+
+ return NotImplemented
+
+ def __radd__(self, other: t.Union[str, "HasHTML"]) -> "Markup":
+ if isinstance(other, str) or hasattr(other, "__html__"):
+ return self.escape(other).__add__(self)
+
+ return NotImplemented
+
+ def __mul__(self, num: int) -> "Markup":
+ if isinstance(num, int):
+ return self.__class__(super().__mul__(num))
+
+ return NotImplemented # type: ignore
+
+ __rmul__ = __mul__
+
+ def __mod__(self, arg: t.Any) -> "Markup":
+ if isinstance(arg, tuple):
+ arg = tuple(_MarkupEscapeHelper(x, self.escape) for x in arg)
+ else:
+ arg = _MarkupEscapeHelper(arg, self.escape)
+
+ return self.__class__(super().__mod__(arg))
+
+ def __repr__(self) -> str:
+ return f"{self.__class__.__name__}({super().__repr__()})"
+
+ def join(self, seq: t.Iterable[t.Union[str, "HasHTML"]]) -> "Markup":
+ return self.__class__(super().join(map(self.escape, seq)))
+
+ join.__doc__ = str.join.__doc__
+
+ def split( # type: ignore
+ self, sep: t.Optional[str] = None, maxsplit: int = -1
+ ) -> t.List["Markup"]:
+ return [self.__class__(v) for v in super().split(sep, maxsplit)]
+
+ split.__doc__ = str.split.__doc__
+
+ def rsplit( # type: ignore
+ self, sep: t.Optional[str] = None, maxsplit: int = -1
+ ) -> t.List["Markup"]:
+ return [self.__class__(v) for v in super().rsplit(sep, maxsplit)]
+
+ rsplit.__doc__ = str.rsplit.__doc__
+
+ def splitlines(self, keepends: bool = False) -> t.List["Markup"]: # type: ignore
+ return [self.__class__(v) for v in super().splitlines(keepends)]
+
+ splitlines.__doc__ = str.splitlines.__doc__
+
+ def unescape(self) -> str:
+ """Convert escaped markup back into a text string. This replaces
+ HTML entities with the characters they represent.
+
+ >>> Markup("Main » About").unescape()
+ 'Main » About'
+ """
+ from html import unescape
+
+ return unescape(str(self))
+
+ def striptags(self) -> str:
+ """:meth:`unescape` the markup, remove tags, and normalize
+ whitespace to single spaces.
+
+ >>> Markup("Main »\tAbout").striptags()
+ 'Main » About'
+ """
+ stripped = " ".join(_striptags_re.sub("", self).split())
+ return Markup(stripped).unescape()
+
+ @classmethod
+ def escape(cls, s: t.Any) -> "Markup":
+ """Escape a string. Calls :func:`escape` and ensures that for
+ subclasses the correct type is returned.
+ """
+ rv = escape(s)
+
+ if rv.__class__ is not cls:
+ return cls(rv)
+
+ return rv
+
+ for method in (
+ "__getitem__",
+ "capitalize",
+ "title",
+ "lower",
+ "upper",
+ "replace",
+ "ljust",
+ "rjust",
+ "lstrip",
+ "rstrip",
+ "center",
+ "strip",
+ "translate",
+ "expandtabs",
+ "swapcase",
+ "zfill",
+ ):
+ locals()[method] = _simple_escaping_wrapper(method)
+
+ del method
+
+ def partition(self, sep: str) -> t.Tuple["Markup", "Markup", "Markup"]:
+ l, s, r = super().partition(self.escape(sep))
+ cls = self.__class__
+ return cls(l), cls(s), cls(r)
+
+ def rpartition(self, sep: str) -> t.Tuple["Markup", "Markup", "Markup"]:
+ l, s, r = super().rpartition(self.escape(sep))
+ cls = self.__class__
+ return cls(l), cls(s), cls(r)
+
+ def format(self, *args: t.Any, **kwargs: t.Any) -> "Markup":
+ formatter = EscapeFormatter(self.escape)
+ return self.__class__(formatter.vformat(self, args, kwargs))
+
+ def __html_format__(self, format_spec: str) -> "Markup":
+ if format_spec:
+ raise ValueError("Unsupported format specification for Markup.")
+
+ return self
+
+
+class EscapeFormatter(string.Formatter):
+ __slots__ = ("escape",)
+
+ def __init__(self, escape: t.Callable[[t.Any], Markup]) -> None:
+ self.escape = escape
+ super().__init__()
+
+ def format_field(self, value: t.Any, format_spec: str) -> str:
+ if hasattr(value, "__html_format__"):
+ rv = value.__html_format__(format_spec)
+ elif hasattr(value, "__html__"):
+ if format_spec:
+ raise ValueError(
+ f"Format specifier {format_spec} given, but {type(value)} does not"
+ " define __html_format__. A class that defines __html__ must define"
+ " __html_format__ to work with format specifiers."
+ )
+ rv = value.__html__()
+ else:
+ # We need to make sure the format spec is str here as
+ # otherwise the wrong callback methods are invoked.
+ rv = string.Formatter.format_field(self, value, str(format_spec))
+ return str(self.escape(rv))
+
+
+_ListOrDict = t.TypeVar("_ListOrDict", list, dict)
+
+
+def _escape_argspec(
+ obj: _ListOrDict, iterable: t.Iterable[t.Any], escape: t.Callable[[t.Any], Markup]
+) -> _ListOrDict:
+ """Helper for various string-wrapped functions."""
+ for key, value in iterable:
+ if isinstance(value, str) or hasattr(value, "__html__"):
+ obj[key] = escape(value)
+
+ return obj
+
+
+class _MarkupEscapeHelper:
+ """Helper for :meth:`Markup.__mod__`."""
+
+ __slots__ = ("obj", "escape")
+
+ def __init__(self, obj: t.Any, escape: t.Callable[[t.Any], Markup]) -> None:
+ self.obj = obj
+ self.escape = escape
+
+ def __getitem__(self, item: t.Any) -> "_MarkupEscapeHelper":
+ return _MarkupEscapeHelper(self.obj[item], self.escape)
+
+ def __str__(self) -> str:
+ return str(self.escape(self.obj))
+
+ def __repr__(self) -> str:
+ return str(self.escape(repr(self.obj)))
+
+ def __int__(self) -> int:
+ return int(self.obj)
+
+ def __float__(self) -> float:
+ return float(self.obj)
+
+
+# circular import
+try:
+ from ._speedups import escape as escape
+ from ._speedups import escape_silent as escape_silent
+ from ._speedups import soft_str as soft_str
+ from ._speedups import soft_unicode
+except ImportError:
+ from ._native import escape as escape
+ from ._native import escape_silent as escape_silent # noqa: F401
+ from ._native import soft_str as soft_str # noqa: F401
+ from ._native import soft_unicode # noqa: F401
diff --git a/IKEA_scraper/.venv/Lib/site-packages/markupsafe/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/markupsafe/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 00000000..b14513c4
Binary files /dev/null and b/IKEA_scraper/.venv/Lib/site-packages/markupsafe/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/markupsafe/__pycache__/_native.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/markupsafe/__pycache__/_native.cpython-39.pyc
new file mode 100644
index 00000000..15006751
Binary files /dev/null and b/IKEA_scraper/.venv/Lib/site-packages/markupsafe/__pycache__/_native.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/markupsafe/_native.py b/IKEA_scraper/.venv/Lib/site-packages/markupsafe/_native.py
new file mode 100644
index 00000000..6f7eb7a8
--- /dev/null
+++ b/IKEA_scraper/.venv/Lib/site-packages/markupsafe/_native.py
@@ -0,0 +1,75 @@
+import typing as t
+
+from . import Markup
+
+
+def escape(s: t.Any) -> Markup:
+ """Replace the characters ``&``, ``<``, ``>``, ``'``, and ``"`` in
+ the string with HTML-safe sequences. Use this if you need to display
+ text that might contain such characters in HTML.
+
+ If the object has an ``__html__`` method, it is called and the
+ return value is assumed to already be safe for HTML.
+
+ :param s: An object to be converted to a string and escaped.
+ :return: A :class:`Markup` string with the escaped text.
+ """
+ if hasattr(s, "__html__"):
+ return Markup(s.__html__())
+
+ return Markup(
+ str(s)
+ .replace("&", "&")
+ .replace(">", ">")
+ .replace("<", "<")
+ .replace("'", "'")
+ .replace('"', """)
+ )
+
+
+def escape_silent(s: t.Optional[t.Any]) -> Markup:
+ """Like :func:`escape` but treats ``None`` as the empty string.
+ Useful with optional values, as otherwise you get the string
+ ``'None'`` when the value is ``None``.
+
+ >>> escape(None)
+ Markup('None')
+ >>> escape_silent(None)
+ Markup('')
+ """
+ if s is None:
+ return Markup()
+
+ return escape(s)
+
+
+def soft_str(s: t.Any) -> str:
+ """Convert an object to a string if it isn't already. This preserves
+ a :class:`Markup` string rather than converting it back to a basic
+ string, so it will still be marked as safe and won't be escaped
+ again.
+
+ >>> value = escape("")
+ >>> value
+ Markup('<User 1>')
+ >>> escape(str(value))
+ Markup('<User 1>')
+ >>> escape(soft_str(value))
+ Markup('<User 1>')
+ """
+ if not isinstance(s, str):
+ return str(s)
+
+ return s
+
+
+def soft_unicode(s: t.Any) -> str:
+ import warnings
+
+ warnings.warn(
+ "'soft_unicode' has been renamed to 'soft_str'. The old name"
+ " will be removed in MarkupSafe 2.1.",
+ DeprecationWarning,
+ stacklevel=2,
+ )
+ return soft_str(s)
diff --git a/IKEA_scraper/.venv/Lib/site-packages/markupsafe/_speedups.cp39-win_amd64.pyd b/IKEA_scraper/.venv/Lib/site-packages/markupsafe/_speedups.cp39-win_amd64.pyd
new file mode 100644
index 00000000..af5e727c
Binary files /dev/null and b/IKEA_scraper/.venv/Lib/site-packages/markupsafe/_speedups.cp39-win_amd64.pyd differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/markupsafe/_speedups.pyi b/IKEA_scraper/.venv/Lib/site-packages/markupsafe/_speedups.pyi
new file mode 100644
index 00000000..f673240f
--- /dev/null
+++ b/IKEA_scraper/.venv/Lib/site-packages/markupsafe/_speedups.pyi
@@ -0,0 +1,9 @@
+from typing import Any
+from typing import Optional
+
+from . import Markup
+
+def escape(s: Any) -> Markup: ...
+def escape_silent(s: Optional[Any]) -> Markup: ...
+def soft_str(s: Any) -> str: ...
+def soft_unicode(s: Any) -> str: ...
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools-56.0.0.dist-info/REQUESTED b/IKEA_scraper/.venv/Lib/site-packages/markupsafe/py.typed
similarity index 100%
rename from IKEA_scraper/.venv/Lib/site-packages/setuptools-56.0.0.dist-info/REQUESTED
rename to IKEA_scraper/.venv/Lib/site-packages/markupsafe/py.typed
diff --git a/IKEA_scraper/.venv/Lib/site-packages/past/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/past/__pycache__/__init__.cpython-39.pyc
index 2e86dabf..874b84aa 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/past/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/past/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/past/builtins/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/past/builtins/__pycache__/__init__.cpython-39.pyc
index dbc7b238..e4b9b7bc 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/past/builtins/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/past/builtins/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/past/builtins/__pycache__/misc.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/past/builtins/__pycache__/misc.cpython-39.pyc
index 2ff2f9d8..dc88fec4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/past/builtins/__pycache__/misc.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/past/builtins/__pycache__/misc.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/past/builtins/__pycache__/noniterators.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/past/builtins/__pycache__/noniterators.cpython-39.pyc
index 858f4081..89bfaa35 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/past/builtins/__pycache__/noniterators.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/past/builtins/__pycache__/noniterators.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/past/translation/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/past/translation/__pycache__/__init__.cpython-39.pyc
index 9373e81e..8713601c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/past/translation/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/past/translation/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/past/types/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/past/types/__pycache__/__init__.cpython-39.pyc
index d83af0e3..b848938e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/past/types/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/past/types/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/past/types/__pycache__/basestring.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/past/types/__pycache__/basestring.cpython-39.pyc
index 94993018..3b2ed3d1 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/past/types/__pycache__/basestring.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/past/types/__pycache__/basestring.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/past/types/__pycache__/olddict.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/past/types/__pycache__/olddict.cpython-39.pyc
index e1fdf399..ced2d755 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/past/types/__pycache__/olddict.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/past/types/__pycache__/olddict.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/past/types/__pycache__/oldstr.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/past/types/__pycache__/oldstr.cpython-39.pyc
index 17825370..ebeac88c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/past/types/__pycache__/oldstr.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/past/types/__pycache__/oldstr.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/past/utils/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/past/utils/__pycache__/__init__.cpython-39.pyc
index 9d6a4f2d..3bf569fd 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/past/utils/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/past/utils/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip-21.2.4.dist-info/RECORD b/IKEA_scraper/.venv/Lib/site-packages/pip-21.2.4.dist-info/RECORD
index 55580106..f281b58b 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/pip-21.2.4.dist-info/RECORD
+++ b/IKEA_scraper/.venv/Lib/site-packages/pip-21.2.4.dist-info/RECORD
@@ -1,6 +1,6 @@
-../../Scripts/pip.exe,sha256=J_3VjfJj-rhMZ699mFxsHe5GX-QDi85SXLEqSsRJCUI,106368
-../../Scripts/pip3.9.exe,sha256=J_3VjfJj-rhMZ699mFxsHe5GX-QDi85SXLEqSsRJCUI,106368
-../../Scripts/pip3.exe,sha256=J_3VjfJj-rhMZ699mFxsHe5GX-QDi85SXLEqSsRJCUI,106368
+../../Scripts/pip.exe,sha256=c3no0m2aCd7EIUIMixBRIaEjE6isbaMWhS56D247o2Y,106372
+../../Scripts/pip3.9.exe,sha256=c3no0m2aCd7EIUIMixBRIaEjE6isbaMWhS56D247o2Y,106372
+../../Scripts/pip3.exe,sha256=c3no0m2aCd7EIUIMixBRIaEjE6isbaMWhS56D247o2Y,106372
pip-21.2.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
pip-21.2.4.dist-info/LICENSE.txt,sha256=I6c2HCsVgQKLxiO52ivSSZeryqR4Gs5q1ESjeUT42uE,1090
pip-21.2.4.dist-info/METADATA,sha256=PGCimuD-VsKv664Ne_9navMt6I9Ym_rm5p_u6Ykgfd4,4165
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/__pycache__/__init__.cpython-39.pyc
index b5a31609..ef808a85 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/__pycache__/__main__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/__pycache__/__main__.cpython-39.pyc
index f575d109..cdb60c6e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/__pycache__/__main__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/__pycache__/__main__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/__init__.cpython-39.pyc
index 5d237492..1a6891be 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/build_env.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/build_env.cpython-39.pyc
index 8b777182..79da0e26 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/build_env.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/build_env.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/cache.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/cache.cpython-39.pyc
index bf1e4c12..3d110e99 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/cache.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/cache.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/configuration.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/configuration.cpython-39.pyc
index e3fa82b7..2b890fdd 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/configuration.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/configuration.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/exceptions.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/exceptions.cpython-39.pyc
index 30a2e72f..6b497f1b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/exceptions.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/exceptions.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/main.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/main.cpython-39.pyc
index 0755a539..c044a94c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/main.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/main.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/pyproject.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/pyproject.cpython-39.pyc
index 01346f35..03505082 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/pyproject.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/pyproject.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/self_outdated_check.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/self_outdated_check.cpython-39.pyc
index 57234c07..545c19f8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/self_outdated_check.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/self_outdated_check.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/wheel_builder.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/wheel_builder.cpython-39.pyc
index 5acce845..5b23c972 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/wheel_builder.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/__pycache__/wheel_builder.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-39.pyc
index 2fadcb5c..af44a400 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-39.pyc
index c7dc26bb..a17c04c4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-39.pyc
index d87202fa..306bb704 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-39.pyc
index 0697c61e..cd148cb7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-39.pyc
index 237098cb..6d00d4cc 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/main.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/main.cpython-39.pyc
index 8b8e01b4..14e9d05f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/main.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/main.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-39.pyc
index cc8c12d6..f5fa54d3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/parser.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/parser.cpython-39.pyc
index 4f9815f3..1d1feb31 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/parser.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/parser.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/progress_bars.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/progress_bars.cpython-39.pyc
index fd026f57..0782c8c9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/progress_bars.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/progress_bars.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/req_command.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/req_command.cpython-39.pyc
index 5ec3ef67..216112ca 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/req_command.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/req_command.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/spinners.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/spinners.cpython-39.pyc
index 6c44f9c9..1d7034af 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/spinners.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/spinners.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-39.pyc
index 76ffe299..40099d9a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-39.pyc
index 09ff1017..ba3f70aa 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/cache.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/cache.cpython-39.pyc
index 786c0c7a..88193c3d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/cache.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/cache.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/check.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/check.cpython-39.pyc
index 1ee97cd3..b1725b8d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/check.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/check.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/completion.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/completion.cpython-39.pyc
index ef35d842..44147250 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/completion.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/completion.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-39.pyc
index ea7d2627..026a1460 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/debug.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/debug.cpython-39.pyc
index be51a3e8..bc19656c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/debug.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/debug.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/download.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/download.cpython-39.pyc
index fc0d7fa9..16335b5b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/download.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/download.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/freeze.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/freeze.cpython-39.pyc
index b06427c3..dcbcd2c0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/freeze.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/freeze.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/hash.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/hash.cpython-39.pyc
index 91b84b2c..d0e51ade 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/hash.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/hash.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/help.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/help.cpython-39.pyc
index 98033608..2feb75d2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/help.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/help.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/index.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/index.cpython-39.pyc
index cb5252d3..b4d1ba39 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/index.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/index.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/install.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/install.cpython-39.pyc
index ae6381b7..96a89f79 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/install.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/install.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/list.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/list.cpython-39.pyc
index 1f182303..17af596e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/list.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/list.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/search.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/search.cpython-39.pyc
index 30f25a69..2921743b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/search.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/search.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/show.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/show.cpython-39.pyc
index 99dc2db0..80dba641 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/show.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/show.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/uninstall.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/uninstall.cpython-39.pyc
index d7ffd181..1da6a22f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/uninstall.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/uninstall.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-39.pyc
index 187214dc..d2ac84fc 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/__init__.cpython-39.pyc
index 6601bc94..a2d9e9ad 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/base.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/base.cpython-39.pyc
index 87ffbcf9..4f3eb1b0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/base.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/base.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/installed.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/installed.cpython-39.pyc
index 9743b81d..40482e42 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/installed.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/installed.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/sdist.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/sdist.cpython-39.pyc
index f0cf0837..d9da5504 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/sdist.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/sdist.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/wheel.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/wheel.cpython-39.pyc
index d3f0fc9b..f680ebd2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/wheel.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/wheel.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/index/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/index/__pycache__/__init__.cpython-39.pyc
index b72c7062..ef732987 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/index/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/index/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/index/__pycache__/collector.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/index/__pycache__/collector.cpython-39.pyc
index d541745b..3093527c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/index/__pycache__/collector.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/index/__pycache__/collector.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/index/__pycache__/package_finder.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/index/__pycache__/package_finder.cpython-39.pyc
index d3f6eb6d..836f5c16 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/index/__pycache__/package_finder.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/index/__pycache__/package_finder.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/index/__pycache__/sources.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/index/__pycache__/sources.cpython-39.pyc
index 4921d726..8706cca9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/index/__pycache__/sources.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/index/__pycache__/sources.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-39.pyc
index 5010df1b..76b8d6e0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/_distutils.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/_distutils.cpython-39.pyc
index 0e1e4867..5e91d8b8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/_distutils.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/_distutils.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/_sysconfig.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/_sysconfig.cpython-39.pyc
index 901f83f1..a9644561 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/_sysconfig.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/_sysconfig.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/base.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/base.cpython-39.pyc
index d2f105a1..d311445d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/base.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/base.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/metadata/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/metadata/__pycache__/__init__.cpython-39.pyc
index e4df13fd..63037bcb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/metadata/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/metadata/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/metadata/__pycache__/base.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/metadata/__pycache__/base.cpython-39.pyc
index 45ed34ec..378a113d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/metadata/__pycache__/base.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/metadata/__pycache__/base.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/metadata/__pycache__/pkg_resources.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/metadata/__pycache__/pkg_resources.cpython-39.pyc
index 3d824e97..2d611d78 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/metadata/__pycache__/pkg_resources.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/metadata/__pycache__/pkg_resources.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/__init__.cpython-39.pyc
index 6aa5972d..b0f87e30 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/candidate.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/candidate.cpython-39.pyc
index 5d956c75..b3ecba25 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/candidate.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/candidate.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/direct_url.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/direct_url.cpython-39.pyc
index 4d703a45..b763aa5f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/direct_url.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/direct_url.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/format_control.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/format_control.cpython-39.pyc
index 9e29589c..ccdb6b46 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/format_control.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/format_control.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/index.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/index.cpython-39.pyc
index 8fd17dc1..2b7cb398 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/index.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/index.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/link.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/link.cpython-39.pyc
index d4187d6e..3591b82d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/link.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/link.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/scheme.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/scheme.cpython-39.pyc
index 360df98c..3587eb6c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/scheme.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/scheme.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/search_scope.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/search_scope.cpython-39.pyc
index c14de1b7..9c081838 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/search_scope.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/search_scope.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-39.pyc
index 6836348e..e0a52110 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/target_python.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/target_python.cpython-39.pyc
index 5812536f..29c42d08 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/target_python.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/target_python.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/wheel.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/wheel.cpython-39.pyc
index e45e8541..48bee713 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/wheel.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/models/__pycache__/wheel.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/__init__.cpython-39.pyc
index 48f48d12..ca5cfb75 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/auth.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/auth.cpython-39.pyc
index c1f75d21..e3064286 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/auth.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/auth.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/cache.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/cache.cpython-39.pyc
index 1a2a1301..cc92141d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/cache.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/cache.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/download.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/download.cpython-39.pyc
index 005afe85..2fc595d3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/download.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/download.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/lazy_wheel.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/lazy_wheel.cpython-39.pyc
index f87a3b11..adf6b96d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/lazy_wheel.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/lazy_wheel.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/session.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/session.cpython-39.pyc
index 4cd66b61..bc99f816 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/session.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/session.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/utils.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/utils.cpython-39.pyc
index 83e5cc20..d313b7d4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/utils.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/utils.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-39.pyc
index 0fd4c69d..734b6c34 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/__init__.cpython-39.pyc
index 90a5358c..f55d66ca 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/check.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/check.cpython-39.pyc
index 84140a6e..bdf77994 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/check.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/check.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/freeze.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/freeze.cpython-39.pyc
index b3561068..e833af57 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/freeze.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/freeze.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/prepare.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/prepare.cpython-39.pyc
index a3710c03..17fa8501 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/prepare.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/prepare.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/__init__.cpython-39.pyc
index fa5e2d13..d12e2373 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/metadata.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/metadata.cpython-39.pyc
index dc778d87..4755540e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/metadata.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/metadata.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/metadata_legacy.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/metadata_legacy.cpython-39.pyc
index efdc10ab..65d3f34b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/metadata_legacy.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/metadata_legacy.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/wheel.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/wheel.cpython-39.pyc
index 9cbb3980..59d2c5ec 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/wheel.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/wheel.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-39.pyc
index cc438293..03eec4fb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/__init__.cpython-39.pyc
index cd40e5d2..25673399 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/editable_legacy.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/editable_legacy.cpython-39.pyc
index a6482a1a..39b7b474 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/editable_legacy.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/editable_legacy.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/legacy.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/legacy.cpython-39.pyc
index 00d548fe..e80a6772 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/legacy.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/legacy.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/wheel.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/wheel.cpython-39.pyc
index c29fd665..8a17e966 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/wheel.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/wheel.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/__init__.cpython-39.pyc
index 725a3067..e6df7ae7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/constructors.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/constructors.cpython-39.pyc
index 5864f297..0d59d46a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/constructors.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/constructors.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_file.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_file.cpython-39.pyc
index 23a77be3..02304509 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_file.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_file.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_install.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_install.cpython-39.pyc
index 78037478..330cb831 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_install.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_install.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_set.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_set.cpython-39.pyc
index 93391c26..28b23c6d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_set.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_set.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_tracker.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_tracker.cpython-39.pyc
index bc6da62e..9bec50b0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_tracker.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_tracker.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_uninstall.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_uninstall.cpython-39.pyc
index 3c0292c5..d7fb86e4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_uninstall.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_uninstall.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/__pycache__/__init__.cpython-39.pyc
index 39cb68bf..f7dbfb61 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/__pycache__/base.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/__pycache__/base.cpython-39.pyc
index b1baeb23..557f8c1c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/__pycache__/base.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/__pycache__/base.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/legacy/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/legacy/__pycache__/__init__.cpython-39.pyc
index 019ce265..3d8f5b82 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/legacy/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/legacy/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/legacy/__pycache__/resolver.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/legacy/__pycache__/resolver.cpython-39.pyc
index 230d7f28..b3d3d4d3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/legacy/__pycache__/resolver.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/legacy/__pycache__/resolver.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-39.pyc
index 19fc94c9..9dd9c574 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/base.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/base.cpython-39.pyc
index e76e5f04..6e44cbd9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/base.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/base.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-39.pyc
index 354fecbe..6acbe77c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-39.pyc
index 6d196af5..c3ccc7c0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-39.pyc
index 1b88f651..b2dfba6a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-39.pyc
index 9e2120de..c4377d7e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-39.pyc
index 403224dc..7f35d800 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-39.pyc
index 165300e3..3ed298eb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-39.pyc
index e149ee3b..8451353d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-39.pyc
index 195bedc1..98fac35b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/_log.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/_log.cpython-39.pyc
index 3842e66f..6e3c9285 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/_log.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/_log.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-39.pyc
index 5315c958..ec1b22cc 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/compat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/compat.cpython-39.pyc
index e01b0e6a..6e005bc6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/compat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/compat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/compatibility_tags.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/compatibility_tags.cpython-39.pyc
index 680c17e5..85f654de 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/compatibility_tags.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/compatibility_tags.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/datetime.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/datetime.cpython-39.pyc
index 7e1505ae..532d59f6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/datetime.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/datetime.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/deprecation.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/deprecation.cpython-39.pyc
index 537dcbfa..2787d226 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/deprecation.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/deprecation.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/direct_url_helpers.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/direct_url_helpers.cpython-39.pyc
index ed4e7044..2d7c5a51 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/direct_url_helpers.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/direct_url_helpers.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/distutils_args.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/distutils_args.cpython-39.pyc
index befda7ce..238de4df 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/distutils_args.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/distutils_args.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/encoding.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/encoding.cpython-39.pyc
index 9ad3450d..b5274162 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/encoding.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/encoding.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/entrypoints.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/entrypoints.cpython-39.pyc
index 55b5e9c0..296c64fb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/entrypoints.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/entrypoints.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-39.pyc
index 1a121feb..6ad1f2c3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-39.pyc
index da0fb751..163b0a79 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/glibc.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/glibc.cpython-39.pyc
index 3f8e42d8..a4d19eb0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/glibc.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/glibc.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-39.pyc
index 5c296a9f..f05fb1a4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/inject_securetransport.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/inject_securetransport.cpython-39.pyc
index 644e52cf..e044839c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/inject_securetransport.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/inject_securetransport.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/logging.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/logging.cpython-39.pyc
index b03e64f6..1fea39c3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/logging.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/logging.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/misc.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/misc.cpython-39.pyc
index 2334d15c..00cf8ad9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/misc.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/misc.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/models.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/models.cpython-39.pyc
index eedb3e23..99a2b511 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/models.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/models.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/packaging.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/packaging.cpython-39.pyc
index 558da2b7..5ba8d9c4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/packaging.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/packaging.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/parallel.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/parallel.cpython-39.pyc
index 03343379..a56ed722 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/parallel.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/parallel.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/pkg_resources.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/pkg_resources.cpython-39.pyc
index 6f3032d7..016fab9d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/pkg_resources.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/pkg_resources.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/setuptools_build.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/setuptools_build.cpython-39.pyc
index 62b91531..af62e225 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/setuptools_build.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/setuptools_build.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/subprocess.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/subprocess.cpython-39.pyc
index 38b0e4aa..6e29a207 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/subprocess.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/subprocess.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/temp_dir.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/temp_dir.cpython-39.pyc
index e182909b..a1d40458 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/temp_dir.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/temp_dir.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/unpacking.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/unpacking.cpython-39.pyc
index 73380047..29143f96 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/unpacking.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/unpacking.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/urls.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/urls.cpython-39.pyc
index 1e4f0e79..977e3db6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/urls.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/urls.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-39.pyc
index abee97d2..852d5c1a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/wheel.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/wheel.cpython-39.pyc
index a0ca2b4c..fd59d408 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/wheel.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/wheel.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/__init__.cpython-39.pyc
index 563762f8..f9585af6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/bazaar.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/bazaar.cpython-39.pyc
index 23c4e6ec..4e53a690 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/bazaar.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/bazaar.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/git.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/git.cpython-39.pyc
index 72822041..4bddfdb2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/git.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/git.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/mercurial.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/mercurial.cpython-39.pyc
index b4664112..937dfd05 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/mercurial.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/mercurial.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-39.pyc
index bb063b97..cdaae715 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/versioncontrol.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/versioncontrol.cpython-39.pyc
index 099b1730..8dfa7b18 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/versioncontrol.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/versioncontrol.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/__pycache__/__init__.cpython-39.pyc
index baa73e50..4a699a46 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/__pycache__/appdirs.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/__pycache__/appdirs.cpython-39.pyc
index 4d184107..9f5f4099 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/__pycache__/appdirs.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/__pycache__/appdirs.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/__pycache__/distro.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/__pycache__/distro.cpython-39.pyc
index 5923f22e..3bb1a7a8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/__pycache__/distro.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/__pycache__/distro.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/__pycache__/pyparsing.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/__pycache__/pyparsing.cpython-39.pyc
index 64d16999..c48a9ea6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/__pycache__/pyparsing.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/__pycache__/pyparsing.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/__pycache__/six.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/__pycache__/six.cpython-39.pyc
index 907689f8..af4aea1d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/__pycache__/six.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/__pycache__/six.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-39.pyc
index a4c40396..a89cac8f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-39.pyc
index 53d01dd5..898e5339 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-39.pyc
index 91a641e2..266ffbf6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-39.pyc
index fdfdf1c2..4d8edd43 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/compat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/compat.cpython-39.pyc
index dd5361c5..659a4e37 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/compat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/compat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/controller.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/controller.cpython-39.pyc
index c6333ddc..6fa97bac 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/controller.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/controller.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-39.pyc
index 1b7c9ad9..f8e040e8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-39.pyc
index 1891f895..e3181a92 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-39.pyc
index 52640112..c3d6886b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-39.pyc
index 49779d73..1a97bf05 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-39.pyc
index 14908caf..d35481e8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-39.pyc
index c6b1d61e..2cad5133 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-39.pyc
index 1b07250f..7cfafabf 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-39.pyc
index b946d9e1..b02d1b27 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/certifi/__pycache__/__main__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/certifi/__pycache__/__main__.cpython-39.pyc
index 9c51bb3f..769de77c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/certifi/__pycache__/__main__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/certifi/__pycache__/__main__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-39.pyc
index 2c21e53d..e1b442a2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/__init__.cpython-39.pyc
index 02c6c41d..dca940b4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/big5freq.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/big5freq.cpython-39.pyc
index 75f5d9c5..9f5d517c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/big5freq.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/big5freq.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/big5prober.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/big5prober.cpython-39.pyc
index 636e92a8..b315bd73 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/big5prober.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/big5prober.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/chardistribution.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/chardistribution.cpython-39.pyc
index 434e3017..8b0386ef 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/chardistribution.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/chardistribution.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/charsetgroupprober.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/charsetgroupprober.cpython-39.pyc
index 245fb0c7..d3d70b63 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/charsetgroupprober.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/charsetgroupprober.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/charsetprober.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/charsetprober.cpython-39.pyc
index c8660972..4be0fd24 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/charsetprober.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/charsetprober.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-39.pyc
index a45a3857..c02a3bf3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/compat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/compat.cpython-39.pyc
index 24d1d775..71494215 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/compat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/compat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/cp949prober.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/cp949prober.cpython-39.pyc
index 1f40211a..eb3f97bb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/cp949prober.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/cp949prober.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/enums.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/enums.cpython-39.pyc
index 31939539..80471eab 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/enums.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/enums.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/escprober.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/escprober.cpython-39.pyc
index b3170279..f9784506 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/escprober.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/escprober.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/escsm.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/escsm.cpython-39.pyc
index 559d4ecc..f9d09989 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/escsm.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/escsm.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/eucjpprober.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/eucjpprober.cpython-39.pyc
index 005a408e..dc328c5f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/eucjpprober.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/eucjpprober.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/euckrfreq.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/euckrfreq.cpython-39.pyc
index a5b896fe..74e33495 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/euckrfreq.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/euckrfreq.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/euckrprober.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/euckrprober.cpython-39.pyc
index e81fca0c..f40aa00f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/euckrprober.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/euckrprober.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/euctwfreq.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/euctwfreq.cpython-39.pyc
index c238e35b..b02ccbd2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/euctwfreq.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/euctwfreq.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/euctwprober.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/euctwprober.cpython-39.pyc
index ec88c677..c87dd508 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/euctwprober.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/euctwprober.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/gb2312freq.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/gb2312freq.cpython-39.pyc
index b816ccab..2b0b6a6a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/gb2312freq.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/gb2312freq.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-39.pyc
index e7deac82..8642ccad 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/hebrewprober.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/hebrewprober.cpython-39.pyc
index eff46686..e5f4ee10 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/hebrewprober.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/hebrewprober.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/jisfreq.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/jisfreq.cpython-39.pyc
index 03c2d1ad..92e3a3d7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/jisfreq.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/jisfreq.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/jpcntx.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/jpcntx.cpython-39.pyc
index b6cb00da..3340f4cb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/jpcntx.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/jpcntx.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-39.pyc
index 0fd1964a..054ad453 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-39.pyc
index 98d04c10..42545306 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-39.pyc
index 70768c9f..90af566a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langhungarianmodel.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langhungarianmodel.cpython-39.pyc
index 7737872d..c2dd8c1d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langhungarianmodel.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langhungarianmodel.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langrussianmodel.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langrussianmodel.cpython-39.pyc
index 032b9603..aeb09f71 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langrussianmodel.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langrussianmodel.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-39.pyc
index 1e044711..f66bbb87 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-39.pyc
index 6980e5f5..d9c1d675 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/latin1prober.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/latin1prober.cpython-39.pyc
index 66795d26..996fd0c2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/latin1prober.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/latin1prober.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-39.pyc
index 0a0aa278..0cf9d609 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/mbcsgroupprober.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/mbcsgroupprober.cpython-39.pyc
index e9377afb..961ee83b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/mbcsgroupprober.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/mbcsgroupprober.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/mbcssm.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/mbcssm.cpython-39.pyc
index 4abe3caf..3cc1e1a8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/mbcssm.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/mbcssm.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-39.pyc
index be0d8b93..f4ce0555 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-39.pyc
index 7352cd9a..07b8b010 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/sjisprober.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/sjisprober.cpython-39.pyc
index 95a2ef95..1ecbc42d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/sjisprober.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/sjisprober.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/universaldetector.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/universaldetector.cpython-39.pyc
index fa4ae232..a928fdfd 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/universaldetector.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/universaldetector.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/utf8prober.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/utf8prober.cpython-39.pyc
index 57b6f5cc..d324e79a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/utf8prober.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/utf8prober.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/version.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/version.cpython-39.pyc
index 2035396c..902d6378 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/version.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/__pycache__/version.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/cli/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/cli/__pycache__/__init__.cpython-39.pyc
index 0a651f7d..9dd5f573 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/cli/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/cli/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/cli/__pycache__/chardetect.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/cli/__pycache__/chardetect.cpython-39.pyc
index b885d237..d6d3890d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/cli/__pycache__/chardetect.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/cli/__pycache__/chardetect.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/metadata/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/metadata/__pycache__/__init__.cpython-39.pyc
index ffd40c1a..32d7aabb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/metadata/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/metadata/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/metadata/__pycache__/languages.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/metadata/__pycache__/languages.cpython-39.pyc
index 054cca9d..9a2f2697 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/metadata/__pycache__/languages.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/chardet/metadata/__pycache__/languages.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/__init__.cpython-39.pyc
index e0f11d5a..d96b8498 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/ansi.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/ansi.cpython-39.pyc
index c58b1163..3bc0e232 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/ansi.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/ansi.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/ansitowin32.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/ansitowin32.cpython-39.pyc
index 911d2834..a2a91516 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/ansitowin32.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/ansitowin32.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/initialise.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/initialise.cpython-39.pyc
index 32d3f7d1..9a6a6052 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/initialise.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/initialise.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/win32.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/win32.cpython-39.pyc
index 931d6762..af6e0aa2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/win32.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/win32.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/winterm.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/winterm.cpython-39.pyc
index f98f686b..034c90d2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/winterm.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/colorama/__pycache__/winterm.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/__init__.cpython-39.pyc
index b7c624f3..516b98d3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-39.pyc
index 49e245fd..441f840d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-39.pyc
index 6afee52e..c84bfd5d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/index.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/index.cpython-39.pyc
index 24b333d8..31357b99 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/index.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/index.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/locators.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/locators.cpython-39.pyc
index 82677ce9..951f0e4c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/locators.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/locators.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/manifest.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/manifest.cpython-39.pyc
index dcdd75d3..f15f30c6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/manifest.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/manifest.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/markers.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/markers.cpython-39.pyc
index c9f1c987..fb2ba57c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/markers.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/markers.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/metadata.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/metadata.cpython-39.pyc
index d630b37f..203bdb18 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/metadata.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/metadata.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/resources.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/resources.cpython-39.pyc
index d09e4bf1..86b38ace 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/resources.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/resources.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/scripts.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/scripts.cpython-39.pyc
index 74a20c6a..02cdf54c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/scripts.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/scripts.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-39.pyc
index 944702b4..fa760fd1 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/version.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/version.cpython-39.pyc
index faaa9536..dd543d60 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/version.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/version.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/wheel.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/wheel.cpython-39.pyc
index 51581822..f1478a67 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/wheel.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/wheel.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/_backport/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/_backport/__pycache__/__init__.cpython-39.pyc
index bd543a83..c07c9061 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/_backport/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/_backport/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/_backport/__pycache__/misc.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/_backport/__pycache__/misc.cpython-39.pyc
index 12a5107e..0e740e5b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/_backport/__pycache__/misc.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/_backport/__pycache__/misc.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/_backport/__pycache__/shutil.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/_backport/__pycache__/shutil.cpython-39.pyc
index a6043759..14373a7b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/_backport/__pycache__/shutil.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/_backport/__pycache__/shutil.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/_backport/__pycache__/sysconfig.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/_backport/__pycache__/sysconfig.cpython-39.pyc
index 3acddea5..45787e1c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/_backport/__pycache__/sysconfig.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/_backport/__pycache__/sysconfig.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/_backport/__pycache__/tarfile.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/_backport/__pycache__/tarfile.cpython-39.pyc
index aa79ab2b..470f313d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/_backport/__pycache__/tarfile.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/distlib/_backport/__pycache__/tarfile.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/__init__.cpython-39.pyc
index 8e4a2e99..f058f3ab 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/_ihatexml.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/_ihatexml.cpython-39.pyc
index 566070f3..dfddf330 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/_ihatexml.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/_ihatexml.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/_inputstream.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/_inputstream.cpython-39.pyc
index dc18f5b2..d734cc32 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/_inputstream.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/_inputstream.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/_tokenizer.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/_tokenizer.cpython-39.pyc
index 2672615f..ac6a73c2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/_tokenizer.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/_tokenizer.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/_utils.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/_utils.cpython-39.pyc
index 24db4f31..6cc31312 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/_utils.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/_utils.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/constants.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/constants.cpython-39.pyc
index 2c2b8b6c..3234db4e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/constants.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/constants.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/html5parser.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/html5parser.cpython-39.pyc
index 8f621f23..3e51cee5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/html5parser.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/html5parser.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/serializer.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/serializer.cpython-39.pyc
index 9d689e13..1ad5e47f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/serializer.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/__pycache__/serializer.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/_trie/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/_trie/__pycache__/__init__.cpython-39.pyc
index 50bb9180..4c47812d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/_trie/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/_trie/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/_trie/__pycache__/_base.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/_trie/__pycache__/_base.cpython-39.pyc
index f92f0b0d..7d27936e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/_trie/__pycache__/_base.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/_trie/__pycache__/_base.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/_trie/__pycache__/py.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/_trie/__pycache__/py.cpython-39.pyc
index cfe22cdf..5c18642d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/_trie/__pycache__/py.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/_trie/__pycache__/py.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/__init__.cpython-39.pyc
index 429fba93..2640f0c7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/alphabeticalattributes.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/alphabeticalattributes.cpython-39.pyc
index 16995204..0c52b583 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/alphabeticalattributes.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/alphabeticalattributes.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/base.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/base.cpython-39.pyc
index 6fa006ea..e8ab5343 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/base.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/base.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/inject_meta_charset.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/inject_meta_charset.cpython-39.pyc
index 78e03a90..5434c246 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/inject_meta_charset.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/inject_meta_charset.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/lint.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/lint.cpython-39.pyc
index e261fc2a..9e0a5674 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/lint.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/lint.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/optionaltags.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/optionaltags.cpython-39.pyc
index 55cdb9c9..3587bebb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/optionaltags.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/optionaltags.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/sanitizer.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/sanitizer.cpython-39.pyc
index fd01b19c..84dce3da 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/sanitizer.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/sanitizer.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/whitespace.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/whitespace.cpython-39.pyc
index d9ac4e24..4fd54e34 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/whitespace.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/filters/__pycache__/whitespace.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/__init__.cpython-39.pyc
index 8cf6fe3d..18395caf 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/genshi.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/genshi.cpython-39.pyc
index 6ee2d3b2..2045884e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/genshi.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/genshi.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/sax.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/sax.cpython-39.pyc
index c5db35fe..0719c4be 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/sax.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/sax.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/__init__.cpython-39.pyc
index 2bb39a80..eb3004e0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/base.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/base.cpython-39.pyc
index 4ea24f8d..603089cb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/base.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/base.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/dom.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/dom.cpython-39.pyc
index 3d276076..ee7e9e0d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/dom.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/dom.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/etree.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/etree.cpython-39.pyc
index 5fd04b87..ca714dcb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/etree.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/etree.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/etree_lxml.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/etree_lxml.cpython-39.pyc
index d83311a9..b29ef655 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/etree_lxml.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/etree_lxml.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/__init__.cpython-39.pyc
index dd4dddc5..f22cc0db 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/base.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/base.cpython-39.pyc
index 6e54b584..2f29324d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/base.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/base.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/dom.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/dom.cpython-39.pyc
index fbb941fb..c231d973 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/dom.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/dom.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/etree.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/etree.cpython-39.pyc
index 9c4b90b5..15076e28 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/etree.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/etree.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/etree_lxml.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/etree_lxml.cpython-39.pyc
index d98c2092..7f257ae8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/etree_lxml.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/etree_lxml.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/genshi.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/genshi.cpython-39.pyc
index ea164206..9d4bd95e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/genshi.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/genshi.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-39.pyc
index 9b8587b2..9d44ca11 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/codec.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/codec.cpython-39.pyc
index 91b2d515..3d073062 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/codec.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/codec.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/compat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/compat.cpython-39.pyc
index ee773e72..7d6a52db 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/compat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/compat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/core.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/core.cpython-39.pyc
index 457bb191..25b5b052 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/core.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/core.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/idnadata.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/idnadata.cpython-39.pyc
index 5e36ad35..07b39ae1 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/idnadata.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/idnadata.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-39.pyc
index f3422385..b6e9d0c8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-39.pyc
index 5266013a..6f7f580e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-39.pyc
index f12c2abe..1e69f7e5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/__init__.cpython-39.pyc
index 5939fce9..3f788db8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/_version.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/_version.cpython-39.pyc
index e501e522..1211c28d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/_version.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/_version.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/exceptions.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/exceptions.cpython-39.pyc
index baa5ccdd..9286f9d0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/exceptions.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/exceptions.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/ext.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/ext.cpython-39.pyc
index 40ca9f85..aa59ab9f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/ext.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/ext.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/fallback.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/fallback.cpython-39.pyc
index f25c8f78..4d39a23d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/fallback.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/fallback.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/__about__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/__about__.cpython-39.pyc
index 4c9edb22..dab6b885 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/__about__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/__about__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/__init__.cpython-39.pyc
index 689d2106..59d0da99 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_manylinux.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_manylinux.cpython-39.pyc
index c66ec658..4c75fea8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_manylinux.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_manylinux.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_musllinux.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_musllinux.cpython-39.pyc
index 55b2848b..98756f15 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_musllinux.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_musllinux.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_structures.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_structures.cpython-39.pyc
index f4387988..2dd85806 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_structures.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_structures.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/markers.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/markers.cpython-39.pyc
index 14940441..a15c4561 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/markers.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/markers.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/requirements.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/requirements.cpython-39.pyc
index b09cb565..78a7a2bb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/requirements.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/requirements.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/specifiers.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/specifiers.cpython-39.pyc
index 5873873a..489dcb78 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/specifiers.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/specifiers.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/tags.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/tags.cpython-39.pyc
index f4afce6b..e8be8564 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/tags.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/tags.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-39.pyc
index cf5a5665..ea53f2e4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/version.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/version.cpython-39.pyc
index 85995178..300d4f52 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/version.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/version.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/__init__.cpython-39.pyc
index e0032293..a075bf66 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/build.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/build.cpython-39.pyc
index 10044736..29f6b6bb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/build.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/build.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/check.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/check.cpython-39.pyc
index 8cd82f73..6e31d397 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/check.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/check.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/colorlog.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/colorlog.cpython-39.pyc
index 6ab317e6..5c530e31 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/colorlog.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/colorlog.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/compat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/compat.cpython-39.pyc
index c68516df..6e23aa3a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/compat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/compat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/dirtools.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/dirtools.cpython-39.pyc
index 869e223f..86668598 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/dirtools.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/dirtools.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/envbuild.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/envbuild.cpython-39.pyc
index 9a713668..e7257bfc 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/envbuild.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/envbuild.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/meta.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/meta.cpython-39.pyc
index e5046742..5bcf8691 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/meta.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/meta.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/wrappers.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/wrappers.cpython-39.pyc
index d76d1ce6..fb5512f4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/wrappers.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/__pycache__/wrappers.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/in_process/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/in_process/__pycache__/__init__.cpython-39.pyc
index 682787d5..85657a5a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/in_process/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/in_process/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/in_process/__pycache__/_in_process.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/in_process/__pycache__/_in_process.cpython-39.pyc
index 0ead823b..712c4442 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/in_process/__pycache__/_in_process.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pep517/in_process/__pycache__/_in_process.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-39.pyc
index 6efc6846..437cccab 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pkg_resources/__pycache__/py31compat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pkg_resources/__pycache__/py31compat.cpython-39.pyc
index 99a0c6b0..87962e8d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pkg_resources/__pycache__/py31compat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/pkg_resources/__pycache__/py31compat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/progress/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/progress/__pycache__/__init__.cpython-39.pyc
index 1a607de5..10a8886d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/progress/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/progress/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/progress/__pycache__/bar.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/progress/__pycache__/bar.cpython-39.pyc
index 4212f2e0..e7546795 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/progress/__pycache__/bar.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/progress/__pycache__/bar.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/progress/__pycache__/counter.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/progress/__pycache__/counter.cpython-39.pyc
index 6f06ac6d..06bd1987 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/progress/__pycache__/counter.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/progress/__pycache__/counter.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/progress/__pycache__/spinner.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/progress/__pycache__/spinner.cpython-39.pyc
index 39ddb551..8ef67b37 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/progress/__pycache__/spinner.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/progress/__pycache__/spinner.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/__init__.cpython-39.pyc
index a5dfe359..114ff43f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/__version__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/__version__.cpython-39.pyc
index 094f1f0f..127fdba0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/__version__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/__version__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/_internal_utils.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/_internal_utils.cpython-39.pyc
index c4802dbd..d3ac29c4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/_internal_utils.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/_internal_utils.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/adapters.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/adapters.cpython-39.pyc
index 45ce6fd9..438851d4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/adapters.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/adapters.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/api.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/api.cpython-39.pyc
index acf83507..96e2c493 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/api.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/api.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/auth.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/auth.cpython-39.pyc
index 83559982..ce3c432e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/auth.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/auth.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/certs.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/certs.cpython-39.pyc
index ac1f2920..6753e77c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/certs.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/certs.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/compat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/compat.cpython-39.pyc
index e1e0b118..f181ac26 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/compat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/compat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/cookies.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/cookies.cpython-39.pyc
index 1935de8f..332ce557 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/cookies.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/cookies.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/exceptions.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/exceptions.cpython-39.pyc
index e3150044..23f04695 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/exceptions.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/exceptions.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/help.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/help.cpython-39.pyc
index 42a81300..27d2eeb9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/help.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/help.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/hooks.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/hooks.cpython-39.pyc
index 8f2df1e7..8148c1da 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/hooks.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/hooks.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/models.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/models.cpython-39.pyc
index 952033de..1315d2c4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/models.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/models.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/packages.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/packages.cpython-39.pyc
index a94f8931..92bca247 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/packages.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/packages.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/sessions.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/sessions.cpython-39.pyc
index f287ec6f..76c48952 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/sessions.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/sessions.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/status_codes.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/status_codes.cpython-39.pyc
index ead2519c..118270f0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/status_codes.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/status_codes.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/structures.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/structures.cpython-39.pyc
index 72ffcb18..9b66e3e8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/structures.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/structures.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/utils.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/utils.cpython-39.pyc
index 3eb4ce6b..6bf3df70 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/utils.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/utils.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/__init__.cpython-39.pyc
index 1437b9ab..930d847f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/providers.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/providers.cpython-39.pyc
index af603d5e..7b94e6a0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/providers.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/providers.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/reporters.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/reporters.cpython-39.pyc
index 48426096..4c5e34b1 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/reporters.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/reporters.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/resolvers.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/resolvers.cpython-39.pyc
index 2b05605b..8353760c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/resolvers.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/resolvers.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/structs.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/structs.cpython-39.pyc
index c11fd7a0..a9226689 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/structs.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/structs.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/compat/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/compat/__pycache__/__init__.cpython-39.pyc
index 2d54dd9c..bcd503d0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/compat/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/compat/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/compat/__pycache__/collections_abc.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/compat/__pycache__/collections_abc.cpython-39.pyc
index 0f39a9b7..d704e7a4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/compat/__pycache__/collections_abc.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/resolvelib/compat/__pycache__/collections_abc.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/__init__.cpython-39.pyc
index bb9576a5..ee69ce83 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/_asyncio.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/_asyncio.cpython-39.pyc
index bb2e7843..099cec3d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/_asyncio.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/_asyncio.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/_utils.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/_utils.cpython-39.pyc
index 25527a76..f935dd2a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/_utils.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/_utils.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/after.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/after.cpython-39.pyc
index 47170c65..91bfdd82 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/after.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/after.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/before.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/before.cpython-39.pyc
index 4ccf7963..39dd4bf0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/before.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/before.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/before_sleep.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/before_sleep.cpython-39.pyc
index 6d502b1f..383d59d6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/before_sleep.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/before_sleep.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/nap.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/nap.cpython-39.pyc
index 2a95cbec..3648d2af 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/nap.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/nap.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/retry.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/retry.cpython-39.pyc
index 930d90e1..41328ece 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/retry.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/retry.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/stop.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/stop.cpython-39.pyc
index 3486aed2..1b79bddb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/stop.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/stop.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/tornadoweb.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/tornadoweb.cpython-39.pyc
index dbf8e4d6..285e684d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/tornadoweb.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/tornadoweb.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/wait.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/wait.cpython-39.pyc
index 3ed0b852..4f327da8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/wait.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tenacity/__pycache__/wait.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tomli/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tomli/__pycache__/__init__.cpython-39.pyc
index 9152b44d..dbd15b8e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tomli/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tomli/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tomli/__pycache__/_parser.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tomli/__pycache__/_parser.cpython-39.pyc
index e4b2702d..7695ef9d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tomli/__pycache__/_parser.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tomli/__pycache__/_parser.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tomli/__pycache__/_re.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tomli/__pycache__/_re.cpython-39.pyc
index 89326fed..ad371437 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tomli/__pycache__/_re.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/tomli/__pycache__/_re.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/__init__.cpython-39.pyc
index 80895703..e0d00b66 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/_collections.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/_collections.cpython-39.pyc
index 01725d43..67abdb67 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/_collections.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/_collections.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/_version.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/_version.cpython-39.pyc
index fb2b319b..765c3a8d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/_version.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/_version.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/connection.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/connection.cpython-39.pyc
index dfd064dc..f8023830 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/connection.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/connection.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-39.pyc
index a0659699..2d849f0c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/exceptions.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/exceptions.cpython-39.pyc
index bd15ed2b..fa5956fc 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/exceptions.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/exceptions.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/fields.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/fields.cpython-39.pyc
index 3ca037ad..2a7c9c00 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/fields.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/fields.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/filepost.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/filepost.cpython-39.pyc
index a4918471..af68c647 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/filepost.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/filepost.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-39.pyc
index 6fcb072c..3fee2dc6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/request.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/request.cpython-39.pyc
index 45237bbe..56e90701 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/request.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/request.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/response.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/response.cpython-39.pyc
index 3dee8596..34760b0a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/response.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/response.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-39.pyc
index ff77e628..d65a874f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-39.pyc
index dd5e70aa..c8846dff 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-39.pyc
index f95936ca..5c688a59 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-39.pyc
index 11df4404..a5b092e9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-39.pyc
index 81598c21..5d3a9f06 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-39.pyc
index f8287bcb..be3c6375 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-39.pyc
index 559e821e..6bd680b7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-39.pyc
index 8a4c8975..e541f674 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-39.pyc
index ae7b4464..c24a62b4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-39.pyc
index b1aa586a..7ec89cce 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-39.pyc
index 5b74a3b5..92b7cf66 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/__pycache__/six.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/__pycache__/six.cpython-39.pyc
index d84ed2d0..8ddbc53d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/__pycache__/six.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/__pycache__/six.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-39.pyc
index 20f65b9f..68e7c150 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-39.pyc
index 8b36a734..f7eb6967 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-39.pyc
index 99df4336..d48361bb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-39.pyc
index 9390172a..32868e6a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-39.pyc
index f8d6c3fc..5d4c8bae 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/connection.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/connection.cpython-39.pyc
index e16630bc..64ab5a44 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/connection.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/connection.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/proxy.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/proxy.cpython-39.pyc
index 1e89b6a3..16062017 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/proxy.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/proxy.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/queue.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/queue.cpython-39.pyc
index c6537071..e6c80e6b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/queue.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/queue.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/request.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/request.cpython-39.pyc
index 5fe733b7..aaf40357 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/request.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/request.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/response.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/response.cpython-39.pyc
index 678c98e7..53e08961 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/response.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/response.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/retry.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/retry.cpython-39.pyc
index 1bb637fb..470dea59 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/retry.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/retry.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-39.pyc
index a1df142a..74c54383 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-39.pyc
index 0fe8ebaa..620b7bee 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-39.pyc
index c6d5ac82..14956d5c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/url.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/url.cpython-39.pyc
index 5118bcc5..32b38631 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/url.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/url.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/wait.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/wait.cpython-39.pyc
index a548ab3d..1f3c858a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/wait.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/wait.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/webencodings/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/webencodings/__pycache__/__init__.cpython-39.pyc
index 9991d6ee..ed31bb0e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/webencodings/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/webencodings/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/webencodings/__pycache__/labels.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/webencodings/__pycache__/labels.cpython-39.pyc
index 77470e5b..6b14bc7d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/webencodings/__pycache__/labels.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/webencodings/__pycache__/labels.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/webencodings/__pycache__/mklabels.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/webencodings/__pycache__/mklabels.cpython-39.pyc
index 21ce0126..efec6676 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/webencodings/__pycache__/mklabels.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/webencodings/__pycache__/mklabels.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/webencodings/__pycache__/tests.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/webencodings/__pycache__/tests.cpython-39.pyc
index 9542117a..a9d891bd 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/webencodings/__pycache__/tests.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/webencodings/__pycache__/tests.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/webencodings/__pycache__/x_user_defined.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/webencodings/__pycache__/x_user_defined.cpython-39.pyc
index 63d8d565..e8bbfd2a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/webencodings/__pycache__/x_user_defined.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pip/_vendor/webencodings/__pycache__/x_user_defined.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/__pycache__/__init__.cpython-39.pyc
index 46c384ab..99dac3f2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/__pycache__/__init__.cpython-39.pyc
index 3b409c1b..98256545 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/__pycache__/appdirs.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/__pycache__/appdirs.cpython-39.pyc
index 889c135d..f4eefc54 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/__pycache__/appdirs.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/__pycache__/appdirs.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/__pycache__/pyparsing.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/__pycache__/pyparsing.cpython-39.pyc
index 0c1ab797..31628de8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/__pycache__/pyparsing.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/__pycache__/pyparsing.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/__about__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/__about__.cpython-39.pyc
index 1b0de447..3bda69f8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/__about__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/__about__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/__init__.cpython-39.pyc
index d9e88bf6..5b9f7c40 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/_compat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/_compat.cpython-39.pyc
index a7f9cf94..bc88ad90 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/_compat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/_compat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/_structures.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/_structures.cpython-39.pyc
index c5f802d6..0b7b17b2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/_structures.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/_structures.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/_typing.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/_typing.cpython-39.pyc
index 015ec9a1..7ae9bd0c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/_typing.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/_typing.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/markers.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/markers.cpython-39.pyc
index 47bd5e76..5a37aa88 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/markers.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/markers.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/requirements.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/requirements.cpython-39.pyc
index 0576bc8c..c2bed71f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/requirements.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/requirements.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/specifiers.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/specifiers.cpython-39.pyc
index 829e05f2..8397dcd3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/specifiers.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/specifiers.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/tags.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/tags.cpython-39.pyc
index ea43ab65..4f4faecc 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/tags.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/tags.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/utils.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/utils.cpython-39.pyc
index b2ec83dd..674307c3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/utils.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/utils.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/version.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/version.cpython-39.pyc
index 5481c175..ccc39ff9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/version.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/packaging/__pycache__/version.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/pyparsing.py b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/pyparsing.py
index 4aa30ee6..1333c00e 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/pyparsing.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/_vendor/pyparsing.py
@@ -1625,7 +1625,7 @@ class ParserElement(object):
(see L{I{parseWithTabs}})
- define your parse action using the full C{(s,loc,toks)} signature, and
reference the input string using the parse action's C{s} argument
- - explictly expand the tabs in your input string before calling
+ - explicitly expand the tabs in your input string before calling
C{parseString}
Example::
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/extern/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/extern/__pycache__/__init__.cpython-39.pyc
index 27f4ffac..8cb85482 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/extern/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/extern/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/tests/data/my-test-package-source/__pycache__/setup.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/tests/data/my-test-package-source/__pycache__/setup.cpython-39.pyc
index a996760b..bf41ffc7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/tests/data/my-test-package-source/__pycache__/setup.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pkg_resources/tests/data/my-test-package-source/__pycache__/setup.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/__init__.cpython-39.pyc
index 1fdf9aee..445ccb9c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/_ast_gen.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/_ast_gen.cpython-39.pyc
index fca3e123..64ff9892 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/_ast_gen.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/_ast_gen.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/_build_tables.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/_build_tables.cpython-39.pyc
index b94dc80b..c1fb0d58 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/_build_tables.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/_build_tables.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/ast_transforms.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/ast_transforms.cpython-39.pyc
index fe22f06d..49ba8f5f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/ast_transforms.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/ast_transforms.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/c_ast.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/c_ast.cpython-39.pyc
index 126eeb8d..c641c947 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/c_ast.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/c_ast.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/c_generator.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/c_generator.cpython-39.pyc
index 70f0e473..2bd61830 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/c_generator.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/c_generator.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/c_lexer.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/c_lexer.cpython-39.pyc
index aa6bf408..29cc1d84 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/c_lexer.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/c_lexer.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/c_parser.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/c_parser.cpython-39.pyc
index 2e10e636..3a8a321e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/c_parser.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/c_parser.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/lextab.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/lextab.cpython-39.pyc
index 4a9641b3..b7290c8d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/lextab.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/lextab.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/plyparser.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/plyparser.cpython-39.pyc
index cc0758d0..1b3e7552 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/plyparser.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/plyparser.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/yacctab.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/yacctab.cpython-39.pyc
index b2a916a8..1d955ad7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/yacctab.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pycparser/__pycache__/yacctab.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/__init__.cpython-39.pyc
index d8d04986..78f52d49 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/cpp.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/cpp.cpython-39.pyc
index d2256d7b..7819a40d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/cpp.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/cpp.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/ctokens.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/ctokens.cpython-39.pyc
index c2361b84..7ff24f2c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/ctokens.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/ctokens.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/lex.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/lex.cpython-39.pyc
index 61fbfe4c..e0f92a9c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/lex.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/lex.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/yacc.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/yacc.cpython-39.pyc
index f1367ffb..c8a01416 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/yacc.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/yacc.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/ygen.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/ygen.cpython-39.pyc
index 5fec4952..b4997425 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/ygen.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/pycparser/ply/__pycache__/ygen.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/__init__.cpython-39.pyc
index 6377bd32..fa4db24c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/__version__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/__version__.cpython-39.pyc
index bd23b6cf..e396467b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/__version__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/__version__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/_internal_utils.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/_internal_utils.cpython-39.pyc
index 88e34508..399c8049 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/_internal_utils.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/_internal_utils.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/adapters.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/adapters.cpython-39.pyc
index ce0d03c9..b453d06d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/adapters.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/adapters.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/api.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/api.cpython-39.pyc
index 44053d7e..d319f1a8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/api.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/api.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/auth.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/auth.cpython-39.pyc
index 85fdd22c..af5e23bf 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/auth.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/auth.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/certs.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/certs.cpython-39.pyc
index 4c17b195..04b66e9b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/certs.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/certs.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/compat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/compat.cpython-39.pyc
index 93a9e917..214edc37 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/compat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/compat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/cookies.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/cookies.cpython-39.pyc
index a7874fac..42e9c11f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/cookies.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/cookies.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/exceptions.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/exceptions.cpython-39.pyc
index 5ea7a842..c8ebdbed 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/exceptions.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/exceptions.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/help.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/help.cpython-39.pyc
index abfdd396..18115c2f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/help.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/help.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/hooks.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/hooks.cpython-39.pyc
index 49a52c5a..f099c12d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/hooks.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/hooks.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/models.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/models.cpython-39.pyc
index 1cca9de5..27ef112e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/models.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/models.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/packages.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/packages.cpython-39.pyc
index c940d745..92d42062 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/packages.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/packages.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/sessions.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/sessions.cpython-39.pyc
index 18e4ab41..2e7a5e88 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/sessions.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/sessions.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/status_codes.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/status_codes.cpython-39.pyc
index 60705972..0fad92f2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/status_codes.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/status_codes.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/structures.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/structures.cpython-39.pyc
index 6bbd7896..c9c40829 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/structures.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/structures.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/utils.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/utils.cpython-39.pyc
index e56fe3a0..ea99b60e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/utils.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/requests/__pycache__/utils.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools-56.0.0.dist-info/dependency_links.txt b/IKEA_scraper/.venv/Lib/site-packages/setuptools-56.0.0.dist-info/dependency_links.txt
deleted file mode 100644
index e87d0210..00000000
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools-56.0.0.dist-info/dependency_links.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-https://files.pythonhosted.org/packages/source/c/certifi/certifi-2016.9.26.tar.gz#md5=baa81e951a29958563689d868ef1064d
-https://files.pythonhosted.org/packages/source/w/wincertstore/wincertstore-0.2.zip#md5=ae728f2f007185648d0c7a8679b361e2
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools-57.4.0.dist-info/INSTALLER b/IKEA_scraper/.venv/Lib/site-packages/setuptools-57.4.0.dist-info/INSTALLER
new file mode 100644
index 00000000..a1b589e3
--- /dev/null
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools-57.4.0.dist-info/INSTALLER
@@ -0,0 +1 @@
+pip
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools-56.0.0.dist-info/LICENSE b/IKEA_scraper/.venv/Lib/site-packages/setuptools-57.4.0.dist-info/LICENSE
similarity index 100%
rename from IKEA_scraper/.venv/Lib/site-packages/setuptools-56.0.0.dist-info/LICENSE
rename to IKEA_scraper/.venv/Lib/site-packages/setuptools-57.4.0.dist-info/LICENSE
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools-56.0.0.dist-info/METADATA b/IKEA_scraper/.venv/Lib/site-packages/setuptools-57.4.0.dist-info/METADATA
similarity index 93%
rename from IKEA_scraper/.venv/Lib/site-packages/setuptools-56.0.0.dist-info/METADATA
rename to IKEA_scraper/.venv/Lib/site-packages/setuptools-57.4.0.dist-info/METADATA
index 0212d70b..7bac3194 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools-56.0.0.dist-info/METADATA
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools-57.4.0.dist-info/METADATA
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: setuptools
-Version: 56.0.0
+Version: 57.4.0
Summary: Easily download, build, install, upgrade, and uninstall Python packages
Home-page: https://github.com/pypa/setuptools
Author: Python Packaging Authority
@@ -19,16 +19,18 @@ Classifier: Topic :: System :: Archiving :: Packaging
Classifier: Topic :: System :: Systems Administration
Classifier: Topic :: Utilities
Requires-Python: >=3.6
+License-File: LICENSE
Provides-Extra: certs
-Requires-Dist: certifi (==2016.9.26) ; extra == 'certs'
Provides-Extra: docs
Requires-Dist: sphinx ; extra == 'docs'
Requires-Dist: jaraco.packaging (>=8.2) ; extra == 'docs'
Requires-Dist: rst.linker (>=1.9) ; extra == 'docs'
+Requires-Dist: jaraco.tidelift (>=1.4) ; extra == 'docs'
Requires-Dist: pygments-github-lexers (==0.0.5) ; extra == 'docs'
Requires-Dist: sphinx-inline-tabs ; extra == 'docs'
+Requires-Dist: sphinxcontrib-towncrier ; extra == 'docs'
+Requires-Dist: furo ; extra == 'docs'
Provides-Extra: ssl
-Requires-Dist: wincertstore (==0.2) ; (sys_platform == "win32") and extra == 'ssl'
Provides-Extra: testing
Requires-Dist: pytest (>=4.6) ; extra == 'testing'
Requires-Dist: pytest-checkdocs (>=2.4) ; extra == 'testing'
@@ -68,6 +70,9 @@ Requires-Dist: pytest-mypy ; (platform_python_implementation != "PyPy" and pytho
.. image:: https://img.shields.io/readthedocs/setuptools/latest.svg
:target: https://setuptools.readthedocs.io
+.. image:: https://img.shields.io/badge/skeleton-2021-informational
+ :target: https://blog.jaraco.com/skeleton
+
.. image:: https://img.shields.io/codecov/c/github/pypa/setuptools/master.svg?logo=codecov&logoColor=white
:target: https://codecov.io/gh/pypa/setuptools
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools-56.0.0.dist-info/RECORD b/IKEA_scraper/.venv/Lib/site-packages/setuptools-57.4.0.dist-info/RECORD
similarity index 84%
rename from IKEA_scraper/.venv/Lib/site-packages/setuptools-56.0.0.dist-info/RECORD
rename to IKEA_scraper/.venv/Lib/site-packages/setuptools-57.4.0.dist-info/RECORD
index 76de6db3..c2c34df2 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools-56.0.0.dist-info/RECORD
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools-57.4.0.dist-info/RECORD
@@ -1,4 +1,4 @@
-_distutils_hack/__init__.py,sha256=Mi-TvyOnuMzUIc_utoEp5m3M_DY6QLLSkXqg6e8whI8,3686
+_distutils_hack/__init__.py,sha256=X3RUiA6KBPoEmco_CjACyltyQbFRGVUpZRAbSkPGwMs,3688
_distutils_hack/__pycache__/__init__.cpython-39.pyc,,
_distutils_hack/__pycache__/override.cpython-39.pyc,,
_distutils_hack/override.py,sha256=Eu_s-NF6VIZ4Cqd0tbbA5wtWky2IZPNd8et6GLt1mzo,44
@@ -32,20 +32,19 @@ pkg_resources/_vendor/packaging/specifiers.py,sha256=uYp9l13F0LcknS6d4N60ytiBgFm
pkg_resources/_vendor/packaging/tags.py,sha256=NKMS37Zo_nWrZxgsD6zbXsXgc9edn9m160cBiLmHJdE,24067
pkg_resources/_vendor/packaging/utils.py,sha256=RShlvnjO2CtYSD8uri32frMMFMTmB-3ihsq1-ghzLEw,1811
pkg_resources/_vendor/packaging/version.py,sha256=Cnbm-OO9D_qd8ZTFxzFcjSavexSYFZmyeaoPvMsjgPc,15470
-pkg_resources/_vendor/pyparsing.py,sha256=tmrp-lu-qO1i75ZzIN5A12nKRRD1Cm4Vpk-5LR9rims,232055
+pkg_resources/_vendor/pyparsing.py,sha256=mahtkgcp3grNAD0re_9R0DLvBnvjzpeLwgJqT-3H1CE,232056
pkg_resources/extern/__init__.py,sha256=3PixaT9Tzzd4NoyV6CVhGd7S_9Z-U5yvMWAftZKvC6k,2362
pkg_resources/extern/__pycache__/__init__.cpython-39.pyc,,
pkg_resources/tests/data/my-test-package-source/__pycache__/setup.cpython-39.pyc,,
pkg_resources/tests/data/my-test-package-source/setup.py,sha256=Mrezl3nqxkYkjCYpIxmjhhg4AR8hgi4QZdEYmk-I7R8,104
-setuptools-56.0.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
-setuptools-56.0.0.dist-info/LICENSE,sha256=2z8CRrH5J48VhFuZ_sR4uLUG63ZIeZNyL4xuJUKF-vg,1050
-setuptools-56.0.0.dist-info/METADATA,sha256=_aCRpMCUGooEBJ9frK3qo-ZvRMWpdZWSWt_y07PjBfM,4759
-setuptools-56.0.0.dist-info/RECORD,,
-setuptools-56.0.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-setuptools-56.0.0.dist-info/WHEEL,sha256=OqRkF0eY5GHssMorFjlbTIq072vpHpF60fIQA6lS9xA,92
-setuptools-56.0.0.dist-info/dependency_links.txt,sha256=HlkCFkoK5TbZ5EMLbLKYhLcY_E31kBWD8TqW2EgmatQ,239
-setuptools-56.0.0.dist-info/entry_points.txt,sha256=lkeJaK21vluS2y7MfmO_tbLYjh8vaZDgZswzU4JD9gg,2869
-setuptools-56.0.0.dist-info/top_level.txt,sha256=d9yL39v_W7qmKDDSH6sT4bE0j_Ls1M3P161OGgdsm4g,41
+setuptools-57.4.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
+setuptools-57.4.0.dist-info/LICENSE,sha256=2z8CRrH5J48VhFuZ_sR4uLUG63ZIeZNyL4xuJUKF-vg,1050
+setuptools-57.4.0.dist-info/METADATA,sha256=UY3W1xrBdD2FzjzYxpKlhhE0C8SlXd7k0N8cCSHWE9U,4908
+setuptools-57.4.0.dist-info/RECORD,,
+setuptools-57.4.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+setuptools-57.4.0.dist-info/WHEEL,sha256=OqRkF0eY5GHssMorFjlbTIq072vpHpF60fIQA6lS9xA,92
+setuptools-57.4.0.dist-info/entry_points.txt,sha256=lkeJaK21vluS2y7MfmO_tbLYjh8vaZDgZswzU4JD9gg,2869
+setuptools-57.4.0.dist-info/top_level.txt,sha256=d9yL39v_W7qmKDDSH6sT4bE0j_Ls1M3P161OGgdsm4g,41
setuptools/__init__.py,sha256=0c232LRyOLGdL-Ywmgk8uMubx7I21w-ixJWiT0jQK-c,7681
setuptools/__pycache__/__init__.cpython-39.pyc,,
setuptools/__pycache__/_deprecation_warning.cpython-39.pyc,,
@@ -68,7 +67,6 @@ setuptools/__pycache__/namespaces.cpython-39.pyc,,
setuptools/__pycache__/package_index.cpython-39.pyc,,
setuptools/__pycache__/py34compat.cpython-39.pyc,,
setuptools/__pycache__/sandbox.cpython-39.pyc,,
-setuptools/__pycache__/ssl_support.cpython-39.pyc,,
setuptools/__pycache__/unicode_utils.cpython-39.pyc,,
setuptools/__pycache__/version.cpython-39.pyc,,
setuptools/__pycache__/wheel.cpython-39.pyc,,
@@ -105,10 +103,10 @@ setuptools/_distutils/__pycache__/unixccompiler.cpython-39.pyc,,
setuptools/_distutils/__pycache__/util.cpython-39.pyc,,
setuptools/_distutils/__pycache__/version.cpython-39.pyc,,
setuptools/_distutils/__pycache__/versionpredicate.cpython-39.pyc,,
-setuptools/_distutils/_msvccompiler.py,sha256=JQcHez50UA3BQKK9fOKANI_GzNFx3_qnZdyHyHNAghA,20813
+setuptools/_distutils/_msvccompiler.py,sha256=jR0JM5A1JMnZ6xMDicQzhXWgXTVXs1lWAeUexC1z198,20813
setuptools/_distutils/archive_util.py,sha256=qW-uiGwYexTvK5e-iSel_31Dshx-CqTanNPK6snwf98,8572
setuptools/_distutils/bcppcompiler.py,sha256=OJDVpCUmX6H8v_7lV1zifV1fcx92Cr2dhiUh6989UJI,14894
-setuptools/_distutils/ccompiler.py,sha256=4cqQgq06NbGo0vazGMT2aPZ6K2Z-HcuRn9Pfz_bQUPw,47437
+setuptools/_distutils/ccompiler.py,sha256=G2tn9Q3zQ0VUNfW1LM-nrnLt_6OhtiUunugCv85D1PQ,47607
setuptools/_distutils/cmd.py,sha256=eco6LAGUtobLuPafuhmgKgkwRRL_WY8KJ4YeDCHpcls,18079
setuptools/_distutils/command/__init__.py,sha256=2TA-rlNDlzeI-csbWHXFjGD8uOYqALMfyWOhT49nC6g,799
setuptools/_distutils/command/__pycache__/__init__.cpython-39.pyc,,
@@ -140,15 +138,15 @@ setuptools/_distutils/command/bdist_dumb.py,sha256=BTur9jcIppyP7Piavjfsk7YjElqvx
setuptools/_distutils/command/bdist_msi.py,sha256=EVFQYN_X-ExeeP8gmdV9JcINsuUGsLJUz9afMU0Rt8c,35579
setuptools/_distutils/command/bdist_rpm.py,sha256=gjOw22GhDSbcq0bdq25cTb-n6HWWm0bShLQad_mkJ4k,21537
setuptools/_distutils/command/bdist_wininst.py,sha256=iGlaI-VfElHOneeczKHWnSN5a10-7IMcJaXuR1mdS3c,16030
-setuptools/_distutils/command/build.py,sha256=11NyR2UAUzalrkTZ2ph0BAHFWFC2jtSsN7gIaF-NC08,5767
+setuptools/_distutils/command/build.py,sha256=1AF-dxN_NlOEyoydBz19AwpeWYPSYCZvOLJSN_PdatY,5773
setuptools/_distutils/command/build_clib.py,sha256=bgVTHh28eLQA2Gkw68amApd_j7qQBX4MTI-zTvAK_J4,8022
-setuptools/_distutils/command/build_ext.py,sha256=Y_SYbd8SHcpgNPfv3ifVniZljYs1cLAFleBSi2_O3CY,31685
+setuptools/_distutils/command/build_ext.py,sha256=8RSBMLY88t7wlwqwdVScJv7OQMxeQ9q-mmwVPipSA-U,31720
setuptools/_distutils/command/build_py.py,sha256=S_Nlw4hZE8PnIgqX5OFMdmt-GSmOhPQQ4f2jr1uBnoU,17190
setuptools/_distutils/command/build_scripts.py,sha256=aKycJJPx3LfZ1cvZgSJaxnD2LnvRM5WJ-8xkpdgcLsI,6232
setuptools/_distutils/command/check.py,sha256=5qDtI75ccZg3sAItQWeaIu8y3FR314O4rr9Smz4HsEo,5637
setuptools/_distutils/command/clean.py,sha256=2TCt47ru4hZZM0RfVfUYj5bbpicpGLP4Qhw5jBtvp9k,2776
setuptools/_distutils/command/config.py,sha256=2aTjww3PwjMB8-ZibCe4P7B-qG1hM1gn_rJXYyxRz6c,13117
-setuptools/_distutils/command/install.py,sha256=oOM2rD7l_SglARNVDmiZn8u6DAfidXRF_yE5QS328B4,27482
+setuptools/_distutils/command/install.py,sha256=drhacfX9QHypgMvMP9C6BjqRYmcGjsH5FPctFcWpqcw,27488
setuptools/_distutils/command/install_data.py,sha256=YhGOAwh3gJPqF7em5XA0rmpR42z1bLh80ooElzDyUvk,2822
setuptools/_distutils/command/install_egg_info.py,sha256=0kW0liVMeadkjX0ZcRfMptKFen07Gw6gyw1VHT5KIwc,2603
setuptools/_distutils/command/install_headers.py,sha256=XQ6idkbIDfr1ljXCOznuVUMvOFpHBn6cK0Wz9gIM2b4,1298
@@ -160,7 +158,7 @@ setuptools/_distutils/command/sdist.py,sha256=qotJjAOzyhJjq2-oDImjNFrOtaSneEFDJT
setuptools/_distutils/command/upload.py,sha256=BLO1w7eSAqsCjCLXtf_CRVSjwF1WmyOByGVGNdcQ8oY,7597
setuptools/_distutils/config.py,sha256=dtHgblx9JhfyrKx1-J7Jlxw_f7s8ZbPFQii2UWMTZpY,4827
setuptools/_distutils/core.py,sha256=jbdOkpOK09xi-56vhhwvn3fYdhLb5DJO8q3K1fnQz0Q,8876
-setuptools/_distutils/cygwinccompiler.py,sha256=9U4JAusUzlAGJl0Y5nToPkQ3ldzseAtiye434mwJ0ow,16380
+setuptools/_distutils/cygwinccompiler.py,sha256=QpmRAopZOYEKww_iCWTu3KLjs9gggyl90E0fagAxqCM,16938
setuptools/_distutils/debug.py,sha256=N6MrTAqK6l9SVk6tWweR108PM8Ol7qNlfyV-nHcLhsY,139
setuptools/_distutils/dep_util.py,sha256=GuR9Iw_jzZRkyemJ5HX8rB_wRGxkIBcBm1qh54r7zhk,3491
setuptools/_distutils/dir_util.py,sha256=UwhBOUTcV65GTwce4SPuTXR8Z8q3LYEcmttqcGb0bYo,7778
@@ -169,24 +167,30 @@ setuptools/_distutils/errors.py,sha256=Yr6tKZGdzBoNi53vBtiq0UJ__X05CmxSdQJqOWaw6
setuptools/_distutils/extension.py,sha256=bTb3Q0CoevGKYv5dX1ls--Ln8tlB0-UEOsi9BwzlZ-s,10515
setuptools/_distutils/fancy_getopt.py,sha256=OPxp2CxHi1Yp_d1D8JxW4Ueq9fC71tegQFaafh58GGU,17784
setuptools/_distutils/file_util.py,sha256=0hUqfItN_x2DVihR0MHdA4KCMVCOO8VoByaFp_a6MDg,8148
-setuptools/_distutils/filelist.py,sha256=8bRxhzp2FsaoHT7TuKD4Qjcuh_B9Ow_xTt_htZJvN2Q,12832
+setuptools/_distutils/filelist.py,sha256=Z9f5hvepZnpniZ2IFmCnWIjdviWozs8sbARBhWajwoM,13407
setuptools/_distutils/log.py,sha256=hWBmdUC2K927QcVv3REMW3HMPclxccPQngxLSuUXQl0,1969
-setuptools/_distutils/msvc9compiler.py,sha256=uv0TAfoWrxEBOQL-Z2uws5g4AXoTPahUEMuq6FLkCYY,30453
-setuptools/_distutils/msvccompiler.py,sha256=ZYsnUgIC4tZT2WkJbTkTUyVSCAc2nFM9DVKIuIfPBU0,23540
+setuptools/_distutils/msvc9compiler.py,sha256=X623B92g0v8A3BEM9qpRf396AEd_hfjkfDUVTKu0hcE,30453
+setuptools/_distutils/msvccompiler.py,sha256=qruALeGRq8-CjtjE2tLQ8W26QnchcYedWzFme8AxZ4Q,23540
setuptools/_distutils/py35compat.py,sha256=-sk1vBIsOgH-AobjIYbK_OEjdJF_54Ul_D1EiE9XM_c,455
setuptools/_distutils/py38compat.py,sha256=II7ddBxOijC7uNN4z_46HYUjwYTJYMNiLJoGTormZm0,212
-setuptools/_distutils/spawn.py,sha256=XBmUqzhxXfay_JE18RkaalHf9kgi7NvXeBPW9BfTqmw,4408
+setuptools/_distutils/spawn.py,sha256=4uE9k3VZWijxy7E_Rlcmh1MoamaPJ8rajdNBagKxjgU,3498
setuptools/_distutils/sysconfig.py,sha256=5z55MU7gXeceL_G9FK6ex-2OvdeIXJRZJafrtthJcfU,21349
setuptools/_distutils/text_file.py,sha256=PsuAJeWdKJoLSV_6N6IpB5-0Pa84KzLUucJMFRazw3I,12483
-setuptools/_distutils/unixccompiler.py,sha256=E65edChYLoHY8wi4OxFu_wKt3hJe3GySF6v51G_ZzL0,14696
-setuptools/_distutils/util.py,sha256=Wlz9noChJjzem9mfgOu-KaN8soB4aNhRfe4VGltXd8w,20985
+setuptools/_distutils/unixccompiler.py,sha256=ke1kq16XId1U1RRvAmaUP9iOEiH4cWNB_FXXqm1vzF0,14957
+setuptools/_distutils/util.py,sha256=VH_8N-7kH1U43zsrXvDev-3HeEi9Jio8UiFXfY3BDV8,23185
setuptools/_distutils/version.py,sha256=8NogP6NPPQpp3EUMZcT9czEHia-ehqPo8spo_e7AgUU,12514
setuptools/_distutils/versionpredicate.py,sha256=ZxpEA-TQv88mUWc6hetUO4qSqA2sa7ipjZ3QEK5evDk,5133
-setuptools/_imp.py,sha256=Qx0LJzEBaWk_6PfICamJtfBN2rh5K9sJq1wXvtZW-mc,2388
+setuptools/_imp.py,sha256=HmF91IbitRfsD5z-g4_wmcuH-RahyIONbPgiCOFgtzA,2392
setuptools/_vendor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
setuptools/_vendor/__pycache__/__init__.cpython-39.pyc,,
setuptools/_vendor/__pycache__/ordered_set.cpython-39.pyc,,
setuptools/_vendor/__pycache__/pyparsing.cpython-39.pyc,,
+setuptools/_vendor/more_itertools/__init__.py,sha256=C7sXffHTXM3P-iaLPPfqfmDoxOflQMJLcM7ed9p3jak,82
+setuptools/_vendor/more_itertools/__pycache__/__init__.cpython-39.pyc,,
+setuptools/_vendor/more_itertools/__pycache__/more.cpython-39.pyc,,
+setuptools/_vendor/more_itertools/__pycache__/recipes.cpython-39.pyc,,
+setuptools/_vendor/more_itertools/more.py,sha256=DlZa8v6JihVwfQ5zHidOA-xDE0orcQIUyxVnCaUoDKE,117968
+setuptools/_vendor/more_itertools/recipes.py,sha256=UkNkrsZyqiwgLHANBTmvMhCvaNSvSNYhyOpz_Jc55DY,16256
setuptools/_vendor/ordered_set.py,sha256=dbaCcs27dyN9gnMWGF5nA_BrVn6Q-NrjKYJpV9_fgBs,15130
setuptools/_vendor/packaging/__about__.py,sha256=PNMsaZn4UcCHyubgROH1bl6CluduPjI5kFrSp_Zgklo,736
setuptools/_vendor/packaging/__init__.py,sha256=6enbp5XgRfjBjsI9-bn00HjHf5TH21PDMOKkJW8xw-w,562
@@ -210,13 +214,13 @@ setuptools/_vendor/packaging/specifiers.py,sha256=uYp9l13F0LcknS6d4N60ytiBgFmIhK
setuptools/_vendor/packaging/tags.py,sha256=NKMS37Zo_nWrZxgsD6zbXsXgc9edn9m160cBiLmHJdE,24067
setuptools/_vendor/packaging/utils.py,sha256=RShlvnjO2CtYSD8uri32frMMFMTmB-3ihsq1-ghzLEw,1811
setuptools/_vendor/packaging/version.py,sha256=Cnbm-OO9D_qd8ZTFxzFcjSavexSYFZmyeaoPvMsjgPc,15470
-setuptools/_vendor/pyparsing.py,sha256=tmrp-lu-qO1i75ZzIN5A12nKRRD1Cm4Vpk-5LR9rims,232055
+setuptools/_vendor/pyparsing.py,sha256=mahtkgcp3grNAD0re_9R0DLvBnvjzpeLwgJqT-3H1CE,232056
setuptools/archive_util.py,sha256=maJDbozRbDeSPw53VT0cb_IS3W0Ap73lJR8tX8RZDx0,7077
setuptools/build_meta.py,sha256=x7FI1UPKCKxBBSopXocfGDnJa98rQO8atKXSwJtdid8,10280
setuptools/cli-32.exe,sha256=dfEuovMNnA2HLa3jRfMPVi5tk4R7alCbpTvuxtCyw0Y,65536
setuptools/cli-64.exe,sha256=KLABu5pyrnokJCv6skjXZ6GsXeyYHGcqOUT3oHI3Xpo,74752
setuptools/cli.exe,sha256=dfEuovMNnA2HLa3jRfMPVi5tk4R7alCbpTvuxtCyw0Y,65536
-setuptools/command/__init__.py,sha256=fSjRqyhdTj_Ml_uey67g2bMtfv-MQrcoTMBUfBBURvo,551
+setuptools/command/__init__.py,sha256=e-8TJOikUe3St0fw2b2p9u5EDdSxl5zHUBJJKifbcQ8,217
setuptools/command/__pycache__/__init__.cpython-39.pyc,,
setuptools/command/__pycache__/alias.cpython-39.pyc,,
setuptools/command/__pycache__/bdist_egg.cpython-39.pyc,,
@@ -245,12 +249,12 @@ setuptools/command/alias.py,sha256=1sLQxZcNh6dDQpDmm4G7UGGTol83nY1NTPmNBbm2siI,2
setuptools/command/bdist_egg.py,sha256=-upiB6fFtm8cQSQj1LRDVpG1-T143DsXCvV0fh03u7U,16604
setuptools/command/bdist_rpm.py,sha256=_4Y7tVAzu1zEuDc8tpRdE_sy3zST3h3LPTtzioos5Ck,900
setuptools/command/build_clib.py,sha256=fWHSFGkk10VCddBWCszvNhowbG9Z9CZXVjQ2uSInoOs,4415
-setuptools/command/build_ext.py,sha256=aI_qnK9m8lULZDS6XMv_p2j2pIehVbSarb4PJHDA7dw,13027
-setuptools/command/build_py.py,sha256=10DNYiaM707UGJ-eV6YNcIKRN1pbU7UwXGYUXACrXU8,9473
+setuptools/command/build_ext.py,sha256=SNK042HfB2ezlDQbSVRGFqI1IM5A4AsjU1wpV3fgskE,13212
+setuptools/command/build_py.py,sha256=fP7K6X8VS92D-_hHK5jM99wnqSjTQhJcx5-8Wp74MB8,8930
setuptools/command/develop.py,sha256=B0p5dh7VrSMdEfhdUE_AJlWk2UxAesOOY14CAV5_DEA,8045
setuptools/command/dist_info.py,sha256=5t6kOfrdgALT-P3ogss6PF9k-Leyesueycuk3dUyZnI,960
setuptools/command/easy_install.py,sha256=13BpU0YW0UNJY-k1OSVCPj7EnCZ0ep5fZCS0uKuZ0mY,85308
-setuptools/command/egg_info.py,sha256=oTvMvsBHYwxiqN6V4BgUZfJEcTm_piA7-Ft9aTuHZV4,25079
+setuptools/command/egg_info.py,sha256=se-FhYI1sZMzKd6lndV_-vNkJ31hX4HY4ZcMUu71l9k,25335
setuptools/command/install.py,sha256=8doMxeQEDoK4Eco0mO2WlXXzzp9QnsGJQ7Z7yWkZPG8,4705
setuptools/command/install_egg_info.py,sha256=bMgeIeRiXzQ4DAGPV1328kcjwQjHjOWU4FngAWLV78Q,2203
setuptools/command/install_lib.py,sha256=Uz42McsyHZAjrB6cw9E7Bz0xsaTbzxnM1PI9CBhiPtE,3875
@@ -260,18 +264,18 @@ setuptools/command/py36compat.py,sha256=7yLWzQj179Enx3pJ8V1cDDCzeLMFMd9XJXlK-iZT
setuptools/command/register.py,sha256=kk3DxXCb5lXTvqnhfwx2g6q7iwbUmgTyXUCaBooBOUk,468
setuptools/command/rotate.py,sha256=SvsQPasezIojPjvMnfkqzh8P0U0tCj0daczF8uc3NQM,2128
setuptools/command/saveopts.py,sha256=za7QCBcQimKKriWcoCcbhxPjUz30gSB74zuTL47xpP4,658
-setuptools/command/sdist.py,sha256=iKVS1zk2EKw_UPiKzWGck8ytka05cWmX28iMvMH4rbk,7818
+setuptools/command/sdist.py,sha256=pEMF0GMVuaznNK6GFamK4GSXG9_qef0ic8z7jEsPmKo,5967
setuptools/command/setopt.py,sha256=LicqlXockLqBOHYPNv1J032HxoBKD4HOHB11qm_t-Bs,5051
-setuptools/command/test.py,sha256=Y4jwjdX_4DCimImq6fDWoHzBniXDNJVEcD6XxVZIYS0,9469
+setuptools/command/test.py,sha256=-O0xrH8adJKTXC8dSZL_bAh21domGM-zCB5RRNfndNc,9490
setuptools/command/upload.py,sha256=XT3YFVfYPAmA5qhGg0euluU98ftxRUW-PzKcODMLxUs,462
setuptools/command/upload_docs.py,sha256=ba5kOyedD_u62weinrxqqnvpuQvBIuamXehJG6tAvO0,7218
-setuptools/config.py,sha256=aviJCeFXvJ_WHwfY9oFaiGOEm4Fv7DF2i9LaAsaD05k,22020
+setuptools/config.py,sha256=a_S9dqb5l18vlqe5BrU303qZ6eFoagC5PZjYwRYX_mw,22279
setuptools/dep_util.py,sha256=BDx1BkzNQntvAB4alypHbW5UVBzjqths000PrUL4Zqc,949
setuptools/depends.py,sha256=iHfZdLdlCu2BllSF9bRg7NU0oqbPWMH8ljm4BuwQDY0,5474
-setuptools/dist.py,sha256=E-U3VVCY7JEKf9Fz_dDkT-EFbUmbJ-XFP_2F2Fz0ivE,40150
+setuptools/dist.py,sha256=BQB5bGAADU6ntdvA7NWtlvULhgLFewlEUfbahtOwHsc,42591
setuptools/errors.py,sha256=MVOcv381HNSajDgEUWzOQ4J6B5BHCBMSjHfaWcEwA1o,524
setuptools/extension.py,sha256=NMM46XjNdVelWemc0x8CyVKA5Ks6Zm3xTWSA2SS6xZM,1684
-setuptools/extern/__init__.py,sha256=uhAc-U12cORBK_H6jUZnG0FF-xaLvFR8j25NH0J0oo4,2389
+setuptools/extern/__init__.py,sha256=Hhf9W73WAitw9TdRJfDIb6YFjmK56CF61afds1Mg0HY,2407
setuptools/extern/__pycache__/__init__.cpython-39.pyc,,
setuptools/glob.py,sha256=1oZjbfjAHSXbgdhSuR6YGU8jKob9L8NtEmBYqcPTLYk,4873
setuptools/gui-32.exe,sha256=XBr0bHMA6Hpz2s9s9Bzjl-PwXfa9nH4ie0rFn4V2kWA,65536
@@ -281,14 +285,13 @@ setuptools/installer.py,sha256=jbhb7ZVkNV_bSUMgfnLcZw0IHr6REFnKF4o7_1Jqxm0,3567
setuptools/launch.py,sha256=TyPT-Ic1T2EnYvGO26gfNRP4ysBlrhpbRjQxWsiO414,812
setuptools/lib2to3_ex.py,sha256=YKA7CmdIJWwy0-yuZAxUgoNHbXFmT4p53iNadWdBQCk,2335
setuptools/monkey.py,sha256=0e3HdVKXHL415O7np-AUqhEFXPPuDdJKbI47chQ_DE4,5217
-setuptools/msvc.py,sha256=HfXdtbmhmxAZXaYFT2NBZrXT8Sdx3fZlh8yIbllLGZ0,51126
+setuptools/msvc.py,sha256=3LLt938e6OR7wWPzIvCQu7LCWZSIKqoKV6w3r8jV3kY,50561
setuptools/namespaces.py,sha256=PMqGVPXPYQgjUTvEg9bGccRAkIODrQ6NmsDg_fwErwI,3093
-setuptools/package_index.py,sha256=xa71H7yK5PunUHF7ngZipaoxw2KWPd23qQNPoDudsPU,40718
+setuptools/package_index.py,sha256=2A1O7fpTXcfeD5IV4HWrIoEXXkgq5k8t9aWrjx90Vnw,39886
setuptools/py34compat.py,sha256=KYOd6ybRxjBW8NJmYD8t_UyyVmysppFXqHpFLdslGXU,245
setuptools/sandbox.py,sha256=IirxmeCHbl1CHT7pEPgQ6tTx9wU854n-d2p80Su8t5c,14151
setuptools/script (dev).tmpl,sha256=RUzQzCQUaXtwdLtYHWYbIQmOaES5Brqq1FvUA_tu-5I,218
setuptools/script.tmpl,sha256=WGTt5piezO27c-Dbx6l5Q4T3Ff20A5z7872hv3aAhYY,138
-setuptools/ssl_support.py,sha256=CPU_41S-x2V6qOuENr2wQsOSxlHvJAoXOxuAPbrxjpM,8565
setuptools/unicode_utils.py,sha256=aOOFo4JGwAsiBttGYDsqFS7YqWQeZ2j6DWiCuctR_00,941
setuptools/version.py,sha256=og_cuZQb0QI6ukKZFfZWPlr1HgJBPPn2vO2m_bI9ZTE,144
setuptools/wheel.py,sha256=0P8tSk105uF_Ub-30N2HU2X2v7MKDSdjpeQlRRW3SkI,8288
diff --git a/IKEA_scraper/web/main.css b/IKEA_scraper/.venv/Lib/site-packages/setuptools-57.4.0.dist-info/REQUESTED
similarity index 100%
rename from IKEA_scraper/web/main.css
rename to IKEA_scraper/.venv/Lib/site-packages/setuptools-57.4.0.dist-info/REQUESTED
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools-56.0.0.dist-info/WHEEL b/IKEA_scraper/.venv/Lib/site-packages/setuptools-57.4.0.dist-info/WHEEL
similarity index 100%
rename from IKEA_scraper/.venv/Lib/site-packages/setuptools-56.0.0.dist-info/WHEEL
rename to IKEA_scraper/.venv/Lib/site-packages/setuptools-57.4.0.dist-info/WHEEL
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools-56.0.0.dist-info/entry_points.txt b/IKEA_scraper/.venv/Lib/site-packages/setuptools-57.4.0.dist-info/entry_points.txt
similarity index 100%
rename from IKEA_scraper/.venv/Lib/site-packages/setuptools-56.0.0.dist-info/entry_points.txt
rename to IKEA_scraper/.venv/Lib/site-packages/setuptools-57.4.0.dist-info/entry_points.txt
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools-56.0.0.dist-info/top_level.txt b/IKEA_scraper/.venv/Lib/site-packages/setuptools-57.4.0.dist-info/top_level.txt
similarity index 100%
rename from IKEA_scraper/.venv/Lib/site-packages/setuptools-56.0.0.dist-info/top_level.txt
rename to IKEA_scraper/.venv/Lib/site-packages/setuptools-57.4.0.dist-info/top_level.txt
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/__init__.cpython-39.pyc
index 12af1d8b..493e947b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/_deprecation_warning.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/_deprecation_warning.cpython-39.pyc
index 8da6add4..d04e1994 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/_deprecation_warning.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/_deprecation_warning.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/_imp.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/_imp.cpython-39.pyc
index c0b82591..f550a476 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/_imp.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/_imp.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/archive_util.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/archive_util.cpython-39.pyc
index c15c4561..c32e0450 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/archive_util.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/archive_util.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/build_meta.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/build_meta.cpython-39.pyc
index 317cab86..864d09f2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/build_meta.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/build_meta.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/config.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/config.cpython-39.pyc
index 27af7db8..28efc48f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/config.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/config.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/dep_util.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/dep_util.cpython-39.pyc
index eeb72dbf..30b98373 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/dep_util.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/dep_util.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/depends.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/depends.cpython-39.pyc
index e809f18b..2fe65885 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/depends.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/depends.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/dist.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/dist.cpython-39.pyc
index a676c26f..5579d43b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/dist.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/dist.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/errors.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/errors.cpython-39.pyc
index dfe3a58f..ed01f5d3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/errors.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/errors.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/extension.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/extension.cpython-39.pyc
index 133acb1b..c56b300f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/extension.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/extension.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/glob.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/glob.cpython-39.pyc
index 0c435d4c..7f620760 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/glob.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/glob.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/installer.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/installer.cpython-39.pyc
index b094d914..aa4368f8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/installer.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/installer.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/launch.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/launch.cpython-39.pyc
index ba7e4437..470b06e5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/launch.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/launch.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/lib2to3_ex.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/lib2to3_ex.cpython-39.pyc
index 5c7fcbb6..ac03888b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/lib2to3_ex.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/lib2to3_ex.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/monkey.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/monkey.cpython-39.pyc
index bfa4dee6..2ecf4cc3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/monkey.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/monkey.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/msvc.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/msvc.cpython-39.pyc
index 961d8013..2cdcc16d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/msvc.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/msvc.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/namespaces.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/namespaces.cpython-39.pyc
index 6128b827..e7936946 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/namespaces.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/namespaces.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/package_index.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/package_index.cpython-39.pyc
index 5e602c2a..afe9f7fc 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/package_index.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/package_index.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/py34compat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/py34compat.cpython-39.pyc
index 2d3d0b67..a1cc89f9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/py34compat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/py34compat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/sandbox.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/sandbox.cpython-39.pyc
index 6a685520..ed2368d5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/sandbox.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/sandbox.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/ssl_support.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/ssl_support.cpython-39.pyc
deleted file mode 100644
index 75aeb0a8..00000000
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/ssl_support.cpython-39.pyc and /dev/null differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/unicode_utils.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/unicode_utils.cpython-39.pyc
index 48a42812..c10ef066 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/unicode_utils.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/unicode_utils.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/version.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/version.cpython-39.pyc
index 6533bdce..9d9b1c1e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/version.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/version.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/wheel.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/wheel.cpython-39.pyc
index 7a9fde5c..a6caa5e3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/wheel.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/wheel.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/windows_support.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/windows_support.cpython-39.pyc
index 643fd7a8..33aa3595 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/windows_support.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/__pycache__/windows_support.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/__init__.cpython-39.pyc
index 547e04ad..abb0202e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/_msvccompiler.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/_msvccompiler.cpython-39.pyc
index 541a1274..f04f936a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/_msvccompiler.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/_msvccompiler.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/archive_util.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/archive_util.cpython-39.pyc
index f834958b..8257fb03 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/archive_util.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/archive_util.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/bcppcompiler.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/bcppcompiler.cpython-39.pyc
index 2f13ff2b..dc68155f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/bcppcompiler.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/bcppcompiler.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/ccompiler.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/ccompiler.cpython-39.pyc
index f754e13e..262826f3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/ccompiler.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/ccompiler.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/cmd.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/cmd.cpython-39.pyc
index 747bc2d7..03745e19 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/cmd.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/cmd.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/config.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/config.cpython-39.pyc
index 51510f3c..d7e8fb24 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/config.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/config.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/core.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/core.cpython-39.pyc
index 5b376571..b5f425d3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/core.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/core.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/cygwinccompiler.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/cygwinccompiler.cpython-39.pyc
index d7fbb111..79f8a90e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/cygwinccompiler.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/cygwinccompiler.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/debug.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/debug.cpython-39.pyc
index 43b0a963..961292f4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/debug.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/debug.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/dep_util.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/dep_util.cpython-39.pyc
index 56ad4f02..82213f4a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/dep_util.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/dep_util.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/dir_util.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/dir_util.cpython-39.pyc
index 54b4e290..d8f6845d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/dir_util.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/dir_util.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/dist.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/dist.cpython-39.pyc
index 1870b7bc..11139a07 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/dist.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/dist.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/errors.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/errors.cpython-39.pyc
index 3ba4a4b7..654e49f8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/errors.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/errors.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/extension.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/extension.cpython-39.pyc
index 6eba7cd4..9d1696f9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/extension.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/extension.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/fancy_getopt.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/fancy_getopt.cpython-39.pyc
index 6a5594d7..ef1211a2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/fancy_getopt.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/fancy_getopt.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/file_util.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/file_util.cpython-39.pyc
index 30b12e4f..49b2d3b9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/file_util.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/file_util.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/filelist.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/filelist.cpython-39.pyc
index 32236e7d..6269c9f9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/filelist.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/filelist.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/log.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/log.cpython-39.pyc
index c16e86dd..eb99488d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/log.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/log.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/msvc9compiler.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/msvc9compiler.cpython-39.pyc
index e2f004bb..59f2fa89 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/msvc9compiler.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/msvc9compiler.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/msvccompiler.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/msvccompiler.cpython-39.pyc
index 6dfb2a17..b62b4170 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/msvccompiler.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/msvccompiler.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/py35compat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/py35compat.cpython-39.pyc
index 73c40d36..f587d3d6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/py35compat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/py35compat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/py38compat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/py38compat.cpython-39.pyc
index fa06ad13..9f1525dd 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/py38compat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/py38compat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/spawn.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/spawn.cpython-39.pyc
index 6180d7b3..cac6e29a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/spawn.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/spawn.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/sysconfig.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/sysconfig.cpython-39.pyc
index 3f846ef3..9b0fe255 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/sysconfig.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/sysconfig.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/text_file.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/text_file.cpython-39.pyc
index 92fc397b..a3d77780 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/text_file.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/text_file.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/unixccompiler.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/unixccompiler.cpython-39.pyc
index 47cfdc30..d832a387 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/unixccompiler.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/unixccompiler.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/util.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/util.cpython-39.pyc
index 84cc4350..6ae5141f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/util.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/util.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/version.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/version.cpython-39.pyc
index 814c45fc..111258c8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/version.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/version.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/versionpredicate.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/versionpredicate.cpython-39.pyc
index e7dfbcec..3f9150c3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/versionpredicate.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/__pycache__/versionpredicate.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/_msvccompiler.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/_msvccompiler.py
index e9af4cf5..b7a06082 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/_msvccompiler.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/_msvccompiler.py
@@ -248,7 +248,7 @@ class MSVCCompiler(CCompiler) :
# Future releases of Python 3.x will include all past
# versions of vcruntime*.dll for compatibility.
self.compile_options = [
- '/nologo', '/Ox', '/W3', '/GL', '/DNDEBUG', '/MD'
+ '/nologo', '/O2', '/W3', '/GL', '/DNDEBUG', '/MD'
]
self.compile_options_debug = [
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/ccompiler.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/ccompiler.py
index 57bb94e8..48d160d2 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/ccompiler.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/ccompiler.py
@@ -392,7 +392,7 @@ class CCompiler:
return output_dir, macros, include_dirs
def _prep_compile(self, sources, output_dir, depends=None):
- """Decide which souce files must be recompiled.
+ """Decide which source files must be recompiled.
Determine the list of object files corresponding to 'sources',
and figure out which ones really need to be recompiled.
@@ -792,6 +792,8 @@ int main (int argc, char **argv) {
objects = self.compile([fname], include_dirs=include_dirs)
except CompileError:
return False
+ finally:
+ os.remove(fname)
try:
self.link_executable(objects, "a.out",
@@ -799,6 +801,11 @@ int main (int argc, char **argv) {
library_dirs=library_dirs)
except (LinkError, TypeError):
return False
+ else:
+ os.remove("a.out")
+ finally:
+ for fn in objects:
+ os.remove(fn)
return True
def find_library_file (self, dirs, lib, debug=0):
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/__init__.cpython-39.pyc
index 295c63b8..395a28c1 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/bdist.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/bdist.cpython-39.pyc
index 43859de6..7a4d2f26 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/bdist.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/bdist.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/bdist_dumb.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/bdist_dumb.cpython-39.pyc
index 75f2afa4..c56da488 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/bdist_dumb.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/bdist_dumb.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/bdist_msi.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/bdist_msi.cpython-39.pyc
index 84c22355..b7288c2f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/bdist_msi.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/bdist_msi.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/bdist_rpm.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/bdist_rpm.cpython-39.pyc
index 58c45b88..3c13f7a8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/bdist_rpm.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/bdist_rpm.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/bdist_wininst.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/bdist_wininst.cpython-39.pyc
index a350fa26..adc9c5d8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/bdist_wininst.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/bdist_wininst.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/build.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/build.cpython-39.pyc
index 49105c2c..27338e69 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/build.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/build.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/build_clib.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/build_clib.cpython-39.pyc
index e888bfa3..51f09e15 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/build_clib.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/build_clib.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/build_ext.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/build_ext.cpython-39.pyc
index 9669c152..d497ddc9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/build_ext.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/build_ext.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/build_py.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/build_py.cpython-39.pyc
index a35b04e6..27069963 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/build_py.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/build_py.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/build_scripts.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/build_scripts.cpython-39.pyc
index 6553f081..5a402626 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/build_scripts.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/build_scripts.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/check.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/check.cpython-39.pyc
index 3e450052..b9978a40 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/check.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/check.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/clean.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/clean.cpython-39.pyc
index a0f84351..e8d3ac5a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/clean.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/clean.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/config.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/config.cpython-39.pyc
index 585e549a..11697728 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/config.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/config.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install.cpython-39.pyc
index 61cb2ea4..78a898b9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install_data.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install_data.cpython-39.pyc
index 9e17394e..1fe9c618 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install_data.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install_data.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install_egg_info.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install_egg_info.cpython-39.pyc
index 3119fc68..cc596a6e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install_egg_info.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install_egg_info.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install_headers.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install_headers.cpython-39.pyc
index f5250857..7011cceb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install_headers.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install_headers.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install_lib.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install_lib.cpython-39.pyc
index 4778a00b..6f5e1e96 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install_lib.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install_lib.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install_scripts.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install_scripts.cpython-39.pyc
index 6c4b6aed..eee4e8d6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install_scripts.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/install_scripts.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/py37compat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/py37compat.cpython-39.pyc
index 6e7b4b08..5967c172 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/py37compat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/py37compat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/register.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/register.cpython-39.pyc
index 75880860..b173b337 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/register.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/register.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/sdist.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/sdist.cpython-39.pyc
index 3f270a27..522f2398 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/sdist.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/sdist.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/upload.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/upload.cpython-39.pyc
index b52f2999..97ee651e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/upload.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/__pycache__/upload.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/build.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/build.py
index a86df0bc..4355a632 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/build.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/build.py
@@ -102,7 +102,7 @@ class build(Command):
# particular module distribution -- if user didn't supply it, pick
# one of 'build_purelib' or 'build_platlib'.
if self.build_lib is None:
- if self.distribution.ext_modules:
+ if self.distribution.has_ext_modules():
self.build_lib = self.build_platlib
else:
self.build_lib = self.build_purelib
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/build_ext.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/build_ext.py
index bbb34833..f7ab32cf 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/build_ext.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/build_ext.py
@@ -690,13 +690,15 @@ class build_ext(Command):
provided, "PyInit_" + module_name. Only relevant on Windows, where
the .pyd file (DLL) must export the module "PyInit_" function.
"""
- suffix = '_' + ext.name.split('.')[-1]
+ name = ext.name.split('.')[-1]
try:
# Unicode module name support as defined in PEP-489
# https://www.python.org/dev/peps/pep-0489/#export-hook-name
- suffix.encode('ascii')
+ name.encode('ascii')
except UnicodeEncodeError:
- suffix = 'U' + suffix.encode('punycode').replace(b'-', b'_').decode('ascii')
+ suffix = 'U_' + name.encode('punycode').replace(b'-', b'_').decode('ascii')
+ else:
+ suffix = "_" + name
initfunc_name = "PyInit" + suffix
if initfunc_name not in ext.export_symbols:
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/install.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/install.py
index 13feeb89..400fb45d 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/install.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/command/install.py
@@ -348,7 +348,7 @@ class install(Command):
# module distribution is pure or not. Of course, if the user
# already specified install_lib, use their selection.
if self.install_lib is None:
- if self.distribution.ext_modules: # has extensions: non-pure
+ if self.distribution.has_ext_modules(): # has extensions: non-pure
self.install_lib = self.install_platlib
else:
self.install_lib = self.install_purelib
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/cygwinccompiler.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/cygwinccompiler.py
index 66c12dd3..f1c38e39 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/cygwinccompiler.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/cygwinccompiler.py
@@ -44,6 +44,8 @@ cygwin in no-cygwin mode).
# (ld supports -shared)
# * mingw gcc 3.2/ld 2.13 works
# (ld supports -shared)
+# * llvm-mingw with Clang 11 works
+# (lld supports -shared)
import os
import sys
@@ -109,41 +111,46 @@ class CygwinCCompiler(UnixCCompiler):
"Compiling may fail because of undefined preprocessor macros."
% details)
- self.gcc_version, self.ld_version, self.dllwrap_version = \
- get_versions()
- self.debug_print(self.compiler_type + ": gcc %s, ld %s, dllwrap %s\n" %
- (self.gcc_version,
- self.ld_version,
- self.dllwrap_version) )
+ self.cc = os.environ.get('CC', 'gcc')
+ self.cxx = os.environ.get('CXX', 'g++')
- # ld_version >= "2.10.90" and < "2.13" should also be able to use
- # gcc -mdll instead of dllwrap
- # Older dllwraps had own version numbers, newer ones use the
- # same as the rest of binutils ( also ld )
- # dllwrap 2.10.90 is buggy
- if self.ld_version >= "2.10.90":
- self.linker_dll = "gcc"
- else:
- self.linker_dll = "dllwrap"
+ if ('gcc' in self.cc): # Start gcc workaround
+ self.gcc_version, self.ld_version, self.dllwrap_version = \
+ get_versions()
+ self.debug_print(self.compiler_type + ": gcc %s, ld %s, dllwrap %s\n" %
+ (self.gcc_version,
+ self.ld_version,
+ self.dllwrap_version) )
- # ld_version >= "2.13" support -shared so use it instead of
- # -mdll -static
- if self.ld_version >= "2.13":
+ # ld_version >= "2.10.90" and < "2.13" should also be able to use
+ # gcc -mdll instead of dllwrap
+ # Older dllwraps had own version numbers, newer ones use the
+ # same as the rest of binutils ( also ld )
+ # dllwrap 2.10.90 is buggy
+ if self.ld_version >= "2.10.90":
+ self.linker_dll = self.cc
+ else:
+ self.linker_dll = "dllwrap"
+
+ # ld_version >= "2.13" support -shared so use it instead of
+ # -mdll -static
+ if self.ld_version >= "2.13":
+ shared_option = "-shared"
+ else:
+ shared_option = "-mdll -static"
+ else: # Assume linker is up to date
+ self.linker_dll = self.cc
shared_option = "-shared"
- else:
- shared_option = "-mdll -static"
- # Hard-code GCC because that's what this is all about.
- # XXX optimization, warnings etc. should be customizable.
- self.set_executables(compiler='gcc -mcygwin -O -Wall',
- compiler_so='gcc -mcygwin -mdll -O -Wall',
- compiler_cxx='g++ -mcygwin -O -Wall',
- linker_exe='gcc -mcygwin',
+ self.set_executables(compiler='%s -mcygwin -O -Wall' % self.cc,
+ compiler_so='%s -mcygwin -mdll -O -Wall' % self.cc,
+ compiler_cxx='%s -mcygwin -O -Wall' % self.cxx,
+ linker_exe='%s -mcygwin' % self.cc,
linker_so=('%s -mcygwin %s' %
(self.linker_dll, shared_option)))
# cygwin and mingw32 need different sets of libraries
- if self.gcc_version == "2.91.57":
+ if ('gcc' in self.cc and self.gcc_version == "2.91.57"):
# cygwin shouldn't need msvcrt, but without the dlls will crash
# (gcc version 2.91.57) -- perhaps something about initialization
self.dll_libraries=["msvcrt"]
@@ -281,26 +288,26 @@ class Mingw32CCompiler(CygwinCCompiler):
# ld_version >= "2.13" support -shared so use it instead of
# -mdll -static
- if self.ld_version >= "2.13":
- shared_option = "-shared"
- else:
+ if ('gcc' in self.cc and self.ld_version < "2.13"):
shared_option = "-mdll -static"
+ else:
+ shared_option = "-shared"
# A real mingw32 doesn't need to specify a different entry point,
# but cygwin 2.91.57 in no-cygwin-mode needs it.
- if self.gcc_version <= "2.91.57":
+ if ('gcc' in self.cc and self.gcc_version <= "2.91.57"):
entry_point = '--entry _DllMain@12'
else:
entry_point = ''
- if is_cygwingcc():
+ if is_cygwincc(self.cc):
raise CCompilerError(
'Cygwin gcc cannot be used with --compiler=mingw32')
- self.set_executables(compiler='gcc -O -Wall',
- compiler_so='gcc -mdll -O -Wall',
- compiler_cxx='g++ -O -Wall',
- linker_exe='gcc',
+ self.set_executables(compiler='%s -O -Wall' % self.cc,
+ compiler_so='%s -mdll -O -Wall' % self.cc,
+ compiler_cxx='%s -O -Wall' % self.cxx,
+ linker_exe='%s' % self.cc,
linker_so='%s %s %s'
% (self.linker_dll, shared_option,
entry_point))
@@ -351,6 +358,10 @@ def check_config_h():
if "GCC" in sys.version:
return CONFIG_H_OK, "sys.version mentions 'GCC'"
+ # Clang would also work
+ if "Clang" in sys.version:
+ return CONFIG_H_OK, "sys.version mentions 'Clang'"
+
# let's see if __GNUC__ is mentioned in python.h
fn = sysconfig.get_config_h_filename()
try:
@@ -397,7 +408,7 @@ def get_versions():
commands = ['gcc -dumpversion', 'ld -v', 'dllwrap --version']
return tuple([_find_exe_version(cmd) for cmd in commands])
-def is_cygwingcc():
- '''Try to determine if the gcc that would be used is from cygwin.'''
- out_string = check_output(['gcc', '-dumpmachine'])
+def is_cygwincc(cc):
+ '''Try to determine if the compiler that would be used is from cygwin.'''
+ out_string = check_output([cc, '-dumpmachine'])
return out_string.strip().endswith(b'cygwin')
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/filelist.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/filelist.py
index c92d5fdb..82a77384 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/filelist.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/filelist.py
@@ -4,13 +4,16 @@ Provides the FileList class, used for poking about the filesystem
and building lists of files.
"""
-import os, re
+import os
+import re
import fnmatch
import functools
+
from distutils.util import convert_path
from distutils.errors import DistutilsTemplateError, DistutilsInternalError
from distutils import log
+
class FileList:
"""A list of files built by on exploring the filesystem and filtered by
applying various patterns to what we find there.
@@ -46,7 +49,7 @@ class FileList:
if DEBUG:
print(msg)
- # -- List-like methods ---------------------------------------------
+ # Collection methods
def append(self, item):
self.files.append(item)
@@ -61,8 +64,7 @@ class FileList:
for sort_tuple in sortable_files:
self.files.append(os.path.join(*sort_tuple))
-
- # -- Other miscellaneous utility methods ---------------------------
+ # Other miscellaneous utility methods
def remove_duplicates(self):
# Assumes list has been sorted!
@@ -70,8 +72,7 @@ class FileList:
if self.files[i] == self.files[i - 1]:
del self.files[i]
-
- # -- "File template" methods ---------------------------------------
+ # "File template" methods
def _parse_template_line(self, line):
words = line.split()
@@ -146,9 +147,11 @@ class FileList:
(dir, ' '.join(patterns)))
for pattern in patterns:
if not self.include_pattern(pattern, prefix=dir):
- log.warn(("warning: no files found matching '%s' "
- "under directory '%s'"),
- pattern, dir)
+ msg = (
+ "warning: no files found matching '%s' "
+ "under directory '%s'"
+ )
+ log.warn(msg, pattern, dir)
elif action == 'recursive-exclude':
self.debug_print("recursive-exclude %s %s" %
@@ -174,8 +177,7 @@ class FileList:
raise DistutilsInternalError(
"this cannot happen: invalid action '%s'" % action)
-
- # -- Filtering/selection methods -----------------------------------
+ # Filtering/selection methods
def include_pattern(self, pattern, anchor=1, prefix=None, is_regex=0):
"""Select strings (presumably filenames) from 'self.files' that
@@ -219,9 +221,8 @@ class FileList:
files_found = True
return files_found
-
- def exclude_pattern (self, pattern,
- anchor=1, prefix=None, is_regex=0):
+ def exclude_pattern(
+ self, pattern, anchor=1, prefix=None, is_regex=0):
"""Remove strings (presumably filenames) from 'files' that match
'pattern'. Other parameters are the same as for
'include_pattern()', above.
@@ -240,21 +241,47 @@ class FileList:
return files_found
-# ----------------------------------------------------------------------
# Utility functions
def _find_all_simple(path):
"""
Find all files under 'path'
"""
+ all_unique = _UniqueDirs.filter(os.walk(path, followlinks=True))
results = (
os.path.join(base, file)
- for base, dirs, files in os.walk(path, followlinks=True)
+ for base, dirs, files in all_unique
for file in files
)
return filter(os.path.isfile, results)
+class _UniqueDirs(set):
+ """
+ Exclude previously-seen dirs from walk results,
+ avoiding infinite recursion.
+ Ref https://bugs.python.org/issue44497.
+ """
+ def __call__(self, walk_item):
+ """
+ Given an item from an os.walk result, determine
+ if the item represents a unique dir for this instance
+ and if not, prevent further traversal.
+ """
+ base, dirs, files = walk_item
+ stat = os.stat(base)
+ candidate = stat.st_dev, stat.st_ino
+ found = candidate in self
+ if found:
+ del dirs[:]
+ self.add(candidate)
+ return not found
+
+ @classmethod
+ def filter(cls, items):
+ return filter(cls(), items)
+
+
def findall(dir=os.curdir):
"""
Find all files under 'dir' and return the list of full filenames.
@@ -319,7 +346,8 @@ def translate_pattern(pattern, anchor=1, prefix=None, is_regex=0):
if os.sep == '\\':
sep = r'\\'
pattern_re = pattern_re[len(start): len(pattern_re) - len(end)]
- pattern_re = r'%s\A%s%s.*%s%s' % (start, prefix_re, sep, pattern_re, end)
+ pattern_re = r'%s\A%s%s.*%s%s' % (
+ start, prefix_re, sep, pattern_re, end)
else: # no prefix -- respect anchor flag
if anchor:
pattern_re = r'%s\A%s' % (start, pattern_re[len(start):])
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/msvc9compiler.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/msvc9compiler.py
index 6934e964..a1b3b02f 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/msvc9compiler.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/msvc9compiler.py
@@ -399,13 +399,13 @@ class MSVCCompiler(CCompiler) :
self.preprocess_options = None
if self.__arch == "x86":
- self.compile_options = [ '/nologo', '/Ox', '/MD', '/W3',
+ self.compile_options = [ '/nologo', '/O2', '/MD', '/W3',
'/DNDEBUG']
self.compile_options_debug = ['/nologo', '/Od', '/MDd', '/W3',
'/Z7', '/D_DEBUG']
else:
# Win64
- self.compile_options = [ '/nologo', '/Ox', '/MD', '/W3', '/GS-' ,
+ self.compile_options = [ '/nologo', '/O2', '/MD', '/W3', '/GS-' ,
'/DNDEBUG']
self.compile_options_debug = ['/nologo', '/Od', '/MDd', '/W3', '/GS-',
'/Z7', '/D_DEBUG']
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/msvccompiler.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/msvccompiler.py
index d5857cb1..2d447b85 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/msvccompiler.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/msvccompiler.py
@@ -283,13 +283,13 @@ class MSVCCompiler(CCompiler) :
self.preprocess_options = None
if self.__arch == "Intel":
- self.compile_options = [ '/nologo', '/Ox', '/MD', '/W3', '/GX' ,
+ self.compile_options = [ '/nologo', '/O2', '/MD', '/W3', '/GX' ,
'/DNDEBUG']
self.compile_options_debug = ['/nologo', '/Od', '/MDd', '/W3', '/GX',
'/Z7', '/D_DEBUG']
else:
# Win64
- self.compile_options = [ '/nologo', '/Ox', '/MD', '/W3', '/GS-' ,
+ self.compile_options = [ '/nologo', '/O2', '/MD', '/W3', '/GS-' ,
'/DNDEBUG']
self.compile_options_debug = ['/nologo', '/Od', '/MDd', '/W3', '/GS-',
'/Z7', '/D_DEBUG']
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/spawn.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/spawn.py
index fc592d4a..6e1c89f1 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/spawn.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/spawn.py
@@ -15,11 +15,6 @@ from distutils.debug import DEBUG
from distutils import log
-if sys.platform == 'darwin':
- _cfg_target = None
- _cfg_target_split = None
-
-
def spawn(cmd, search_path=1, verbose=0, dry_run=0, env=None):
"""Run another program, specified as a command list 'cmd', in a new process.
@@ -40,7 +35,7 @@ def spawn(cmd, search_path=1, verbose=0, dry_run=0, env=None):
# in, protect our %-formatting code against horrible death
cmd = list(cmd)
- log.info(' '.join(cmd))
+ log.info(subprocess.list2cmdline(cmd))
if dry_run:
return
@@ -52,24 +47,10 @@ def spawn(cmd, search_path=1, verbose=0, dry_run=0, env=None):
env = env if env is not None else dict(os.environ)
if sys.platform == 'darwin':
- global _cfg_target, _cfg_target_split
- if _cfg_target is None:
- from distutils import sysconfig
- _cfg_target = sysconfig.get_config_var(
- 'MACOSX_DEPLOYMENT_TARGET') or ''
- if _cfg_target:
- _cfg_target_split = [int(x) for x in _cfg_target.split('.')]
- if _cfg_target:
- # ensure that the deployment target of build process is not less
- # than that used when the interpreter was built. This ensures
- # extension modules are built with correct compatibility values
- cur_target = os.environ.get('MACOSX_DEPLOYMENT_TARGET', _cfg_target)
- if _cfg_target_split > [int(x) for x in cur_target.split('.')]:
- my_msg = ('$MACOSX_DEPLOYMENT_TARGET mismatch: '
- 'now "%s" but "%s" during configure'
- % (cur_target, _cfg_target))
- raise DistutilsPlatformError(my_msg)
- env.update(MACOSX_DEPLOYMENT_TARGET=cur_target)
+ from distutils.util import MACOSX_VERSION_VAR, get_macosx_target_ver
+ macosx_target_ver = get_macosx_target_ver()
+ if macosx_target_ver:
+ env[MACOSX_VERSION_VAR] = macosx_target_ver
try:
proc = subprocess.Popen(cmd, env=env)
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/unixccompiler.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/unixccompiler.py
index 4d7a6de7..f51977a5 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/unixccompiler.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/unixccompiler.py
@@ -233,8 +233,12 @@ class UnixCCompiler(CCompiler):
# we use this hack.
compiler = os.path.basename(sysconfig.get_config_var("CC"))
if sys.platform[:6] == "darwin":
- # MacOSX's linker doesn't understand the -R flag at all
- return "-L" + dir
+ from distutils.util import get_macosx_target_ver, split_version
+ macosx_target_ver = get_macosx_target_ver()
+ if macosx_target_ver and split_version(macosx_target_ver) >= [10, 5]:
+ return "-Wl,-rpath," + dir
+ else: # no support for -rpath on earlier macOS versions
+ return "-L" + dir
elif sys.platform[:7] == "freebsd":
return "-Wl,-rpath=" + dir
elif sys.platform[:5] == "hp-ux":
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/util.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/util.py
index f5aca794..4232fd21 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/util.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_distutils/util.py
@@ -103,11 +103,66 @@ def get_platform():
'x86' : 'win32',
'x64' : 'win-amd64',
'arm' : 'win-arm32',
+ 'arm64': 'win-arm64',
}
return TARGET_TO_PLAT.get(os.environ.get('VSCMD_ARG_TGT_ARCH')) or get_host_platform()
else:
return get_host_platform()
+
+if sys.platform == 'darwin':
+ _syscfg_macosx_ver = None # cache the version pulled from sysconfig
+MACOSX_VERSION_VAR = 'MACOSX_DEPLOYMENT_TARGET'
+
+def _clear_cached_macosx_ver():
+ """For testing only. Do not call."""
+ global _syscfg_macosx_ver
+ _syscfg_macosx_ver = None
+
+def get_macosx_target_ver_from_syscfg():
+ """Get the version of macOS latched in the Python interpreter configuration.
+ Returns the version as a string or None if can't obtain one. Cached."""
+ global _syscfg_macosx_ver
+ if _syscfg_macosx_ver is None:
+ from distutils import sysconfig
+ ver = sysconfig.get_config_var(MACOSX_VERSION_VAR) or ''
+ if ver:
+ _syscfg_macosx_ver = ver
+ return _syscfg_macosx_ver
+
+def get_macosx_target_ver():
+ """Return the version of macOS for which we are building.
+
+ The target version defaults to the version in sysconfig latched at time
+ the Python interpreter was built, unless overriden by an environment
+ variable. If neither source has a value, then None is returned"""
+
+ syscfg_ver = get_macosx_target_ver_from_syscfg()
+ env_ver = os.environ.get(MACOSX_VERSION_VAR)
+
+ if env_ver:
+ # Validate overriden version against sysconfig version, if have both.
+ # Ensure that the deployment target of the build process is not less
+ # than 10.3 if the interpreter was built for 10.3 or later. This
+ # ensures extension modules are built with correct compatibility
+ # values, specifically LDSHARED which can use
+ # '-undefined dynamic_lookup' which only works on >= 10.3.
+ if syscfg_ver and split_version(syscfg_ver) >= [10, 3] and \
+ split_version(env_ver) < [10, 3]:
+ my_msg = ('$' + MACOSX_VERSION_VAR + ' mismatch: '
+ 'now "%s" but "%s" during configure; '
+ 'must use 10.3 or later'
+ % (env_ver, syscfg_ver))
+ raise DistutilsPlatformError(my_msg)
+ return env_ver
+ return syscfg_ver
+
+
+def split_version(s):
+ """Convert a dot-separated string into a list of numbers for comparisons"""
+ return [int(n) for n in s.split('.')]
+
+
def convert_path (pathname):
"""Return 'pathname' as a name that will work on the native filesystem,
i.e. split it on '/' and put it back together again using the current
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_imp.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_imp.py
index 451e45a8..47efd792 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_imp.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_imp.py
@@ -41,12 +41,12 @@ def find_module(module, paths=None):
spec.loader, importlib.machinery.FrozenImporter):
kind = PY_FROZEN
path = None # imp compabilty
- suffix = mode = '' # imp compability
+ suffix = mode = '' # imp compatibility
elif spec.origin == 'built-in' or static and issubclass(
spec.loader, importlib.machinery.BuiltinImporter):
kind = C_BUILTIN
path = None # imp compabilty
- suffix = mode = '' # imp compability
+ suffix = mode = '' # imp compatibility
elif spec.has_location:
path = spec.origin
suffix = os.path.splitext(path)[1]
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/__pycache__/__init__.cpython-39.pyc
index 6981f5ee..26449055 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/__pycache__/ordered_set.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/__pycache__/ordered_set.cpython-39.pyc
index 78f86775..f68825ad 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/__pycache__/ordered_set.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/__pycache__/ordered_set.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/__pycache__/pyparsing.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/__pycache__/pyparsing.cpython-39.pyc
index 40b27e5d..052573c6 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/__pycache__/pyparsing.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/__pycache__/pyparsing.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/more_itertools/__init__.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/more_itertools/__init__.py
new file mode 100644
index 00000000..19a169fc
--- /dev/null
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/more_itertools/__init__.py
@@ -0,0 +1,4 @@
+from .more import * # noqa
+from .recipes import * # noqa
+
+__version__ = '8.8.0'
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/more_itertools/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/more_itertools/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 00000000..353400bb
Binary files /dev/null and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/more_itertools/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/more_itertools/__pycache__/more.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/more_itertools/__pycache__/more.cpython-39.pyc
new file mode 100644
index 00000000..62620745
Binary files /dev/null and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/more_itertools/__pycache__/more.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/more_itertools/__pycache__/recipes.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/more_itertools/__pycache__/recipes.cpython-39.pyc
new file mode 100644
index 00000000..0b9e5135
Binary files /dev/null and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/more_itertools/__pycache__/recipes.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/more_itertools/more.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/more_itertools/more.py
new file mode 100644
index 00000000..0f7d282a
--- /dev/null
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/more_itertools/more.py
@@ -0,0 +1,3825 @@
+import warnings
+
+from collections import Counter, defaultdict, deque, abc
+from collections.abc import Sequence
+from concurrent.futures import ThreadPoolExecutor
+from functools import partial, reduce, wraps
+from heapq import merge, heapify, heapreplace, heappop
+from itertools import (
+ chain,
+ compress,
+ count,
+ cycle,
+ dropwhile,
+ groupby,
+ islice,
+ repeat,
+ starmap,
+ takewhile,
+ tee,
+ zip_longest,
+)
+from math import exp, factorial, floor, log
+from queue import Empty, Queue
+from random import random, randrange, uniform
+from operator import itemgetter, mul, sub, gt, lt
+from sys import hexversion, maxsize
+from time import monotonic
+
+from .recipes import (
+ consume,
+ flatten,
+ pairwise,
+ powerset,
+ take,
+ unique_everseen,
+)
+
+__all__ = [
+ 'AbortThread',
+ 'adjacent',
+ 'always_iterable',
+ 'always_reversible',
+ 'bucket',
+ 'callback_iter',
+ 'chunked',
+ 'circular_shifts',
+ 'collapse',
+ 'collate',
+ 'consecutive_groups',
+ 'consumer',
+ 'countable',
+ 'count_cycle',
+ 'mark_ends',
+ 'difference',
+ 'distinct_combinations',
+ 'distinct_permutations',
+ 'distribute',
+ 'divide',
+ 'exactly_n',
+ 'filter_except',
+ 'first',
+ 'groupby_transform',
+ 'ilen',
+ 'interleave_longest',
+ 'interleave',
+ 'intersperse',
+ 'islice_extended',
+ 'iterate',
+ 'ichunked',
+ 'is_sorted',
+ 'last',
+ 'locate',
+ 'lstrip',
+ 'make_decorator',
+ 'map_except',
+ 'map_reduce',
+ 'nth_or_last',
+ 'nth_permutation',
+ 'nth_product',
+ 'numeric_range',
+ 'one',
+ 'only',
+ 'padded',
+ 'partitions',
+ 'set_partitions',
+ 'peekable',
+ 'repeat_last',
+ 'replace',
+ 'rlocate',
+ 'rstrip',
+ 'run_length',
+ 'sample',
+ 'seekable',
+ 'SequenceView',
+ 'side_effect',
+ 'sliced',
+ 'sort_together',
+ 'split_at',
+ 'split_after',
+ 'split_before',
+ 'split_when',
+ 'split_into',
+ 'spy',
+ 'stagger',
+ 'strip',
+ 'substrings',
+ 'substrings_indexes',
+ 'time_limited',
+ 'unique_to_each',
+ 'unzip',
+ 'windowed',
+ 'with_iter',
+ 'UnequalIterablesError',
+ 'zip_equal',
+ 'zip_offset',
+ 'windowed_complete',
+ 'all_unique',
+ 'value_chain',
+ 'product_index',
+ 'combination_index',
+ 'permutation_index',
+]
+
+_marker = object()
+
+
+def chunked(iterable, n, strict=False):
+ """Break *iterable* into lists of length *n*:
+
+ >>> list(chunked([1, 2, 3, 4, 5, 6], 3))
+ [[1, 2, 3], [4, 5, 6]]
+
+ By the default, the last yielded list will have fewer than *n* elements
+ if the length of *iterable* is not divisible by *n*:
+
+ >>> list(chunked([1, 2, 3, 4, 5, 6, 7, 8], 3))
+ [[1, 2, 3], [4, 5, 6], [7, 8]]
+
+ To use a fill-in value instead, see the :func:`grouper` recipe.
+
+ If the length of *iterable* is not divisible by *n* and *strict* is
+ ``True``, then ``ValueError`` will be raised before the last
+ list is yielded.
+
+ """
+ iterator = iter(partial(take, n, iter(iterable)), [])
+ if strict:
+
+ def ret():
+ for chunk in iterator:
+ if len(chunk) != n:
+ raise ValueError('iterable is not divisible by n.')
+ yield chunk
+
+ return iter(ret())
+ else:
+ return iterator
+
+
+def first(iterable, default=_marker):
+ """Return the first item of *iterable*, or *default* if *iterable* is
+ empty.
+
+ >>> first([0, 1, 2, 3])
+ 0
+ >>> first([], 'some default')
+ 'some default'
+
+ If *default* is not provided and there are no items in the iterable,
+ raise ``ValueError``.
+
+ :func:`first` is useful when you have a generator of expensive-to-retrieve
+ values and want any arbitrary one. It is marginally shorter than
+ ``next(iter(iterable), default)``.
+
+ """
+ try:
+ return next(iter(iterable))
+ except StopIteration as e:
+ if default is _marker:
+ raise ValueError(
+ 'first() was called on an empty iterable, and no '
+ 'default value was provided.'
+ ) from e
+ return default
+
+
+def last(iterable, default=_marker):
+ """Return the last item of *iterable*, or *default* if *iterable* is
+ empty.
+
+ >>> last([0, 1, 2, 3])
+ 3
+ >>> last([], 'some default')
+ 'some default'
+
+ If *default* is not provided and there are no items in the iterable,
+ raise ``ValueError``.
+ """
+ try:
+ if isinstance(iterable, Sequence):
+ return iterable[-1]
+ # Work around https://bugs.python.org/issue38525
+ elif hasattr(iterable, '__reversed__') and (hexversion != 0x030800F0):
+ return next(reversed(iterable))
+ else:
+ return deque(iterable, maxlen=1)[-1]
+ except (IndexError, TypeError, StopIteration):
+ if default is _marker:
+ raise ValueError(
+ 'last() was called on an empty iterable, and no default was '
+ 'provided.'
+ )
+ return default
+
+
+def nth_or_last(iterable, n, default=_marker):
+ """Return the nth or the last item of *iterable*,
+ or *default* if *iterable* is empty.
+
+ >>> nth_or_last([0, 1, 2, 3], 2)
+ 2
+ >>> nth_or_last([0, 1], 2)
+ 1
+ >>> nth_or_last([], 0, 'some default')
+ 'some default'
+
+ If *default* is not provided and there are no items in the iterable,
+ raise ``ValueError``.
+ """
+ return last(islice(iterable, n + 1), default=default)
+
+
+class peekable:
+ """Wrap an iterator to allow lookahead and prepending elements.
+
+ Call :meth:`peek` on the result to get the value that will be returned
+ by :func:`next`. This won't advance the iterator:
+
+ >>> p = peekable(['a', 'b'])
+ >>> p.peek()
+ 'a'
+ >>> next(p)
+ 'a'
+
+ Pass :meth:`peek` a default value to return that instead of raising
+ ``StopIteration`` when the iterator is exhausted.
+
+ >>> p = peekable([])
+ >>> p.peek('hi')
+ 'hi'
+
+ peekables also offer a :meth:`prepend` method, which "inserts" items
+ at the head of the iterable:
+
+ >>> p = peekable([1, 2, 3])
+ >>> p.prepend(10, 11, 12)
+ >>> next(p)
+ 10
+ >>> p.peek()
+ 11
+ >>> list(p)
+ [11, 12, 1, 2, 3]
+
+ peekables can be indexed. Index 0 is the item that will be returned by
+ :func:`next`, index 1 is the item after that, and so on:
+ The values up to the given index will be cached.
+
+ >>> p = peekable(['a', 'b', 'c', 'd'])
+ >>> p[0]
+ 'a'
+ >>> p[1]
+ 'b'
+ >>> next(p)
+ 'a'
+
+ Negative indexes are supported, but be aware that they will cache the
+ remaining items in the source iterator, which may require significant
+ storage.
+
+ To check whether a peekable is exhausted, check its truth value:
+
+ >>> p = peekable(['a', 'b'])
+ >>> if p: # peekable has items
+ ... list(p)
+ ['a', 'b']
+ >>> if not p: # peekable is exhausted
+ ... list(p)
+ []
+
+ """
+
+ def __init__(self, iterable):
+ self._it = iter(iterable)
+ self._cache = deque()
+
+ def __iter__(self):
+ return self
+
+ def __bool__(self):
+ try:
+ self.peek()
+ except StopIteration:
+ return False
+ return True
+
+ def peek(self, default=_marker):
+ """Return the item that will be next returned from ``next()``.
+
+ Return ``default`` if there are no items left. If ``default`` is not
+ provided, raise ``StopIteration``.
+
+ """
+ if not self._cache:
+ try:
+ self._cache.append(next(self._it))
+ except StopIteration:
+ if default is _marker:
+ raise
+ return default
+ return self._cache[0]
+
+ def prepend(self, *items):
+ """Stack up items to be the next ones returned from ``next()`` or
+ ``self.peek()``. The items will be returned in
+ first in, first out order::
+
+ >>> p = peekable([1, 2, 3])
+ >>> p.prepend(10, 11, 12)
+ >>> next(p)
+ 10
+ >>> list(p)
+ [11, 12, 1, 2, 3]
+
+ It is possible, by prepending items, to "resurrect" a peekable that
+ previously raised ``StopIteration``.
+
+ >>> p = peekable([])
+ >>> next(p)
+ Traceback (most recent call last):
+ ...
+ StopIteration
+ >>> p.prepend(1)
+ >>> next(p)
+ 1
+ >>> next(p)
+ Traceback (most recent call last):
+ ...
+ StopIteration
+
+ """
+ self._cache.extendleft(reversed(items))
+
+ def __next__(self):
+ if self._cache:
+ return self._cache.popleft()
+
+ return next(self._it)
+
+ def _get_slice(self, index):
+ # Normalize the slice's arguments
+ step = 1 if (index.step is None) else index.step
+ if step > 0:
+ start = 0 if (index.start is None) else index.start
+ stop = maxsize if (index.stop is None) else index.stop
+ elif step < 0:
+ start = -1 if (index.start is None) else index.start
+ stop = (-maxsize - 1) if (index.stop is None) else index.stop
+ else:
+ raise ValueError('slice step cannot be zero')
+
+ # If either the start or stop index is negative, we'll need to cache
+ # the rest of the iterable in order to slice from the right side.
+ if (start < 0) or (stop < 0):
+ self._cache.extend(self._it)
+ # Otherwise we'll need to find the rightmost index and cache to that
+ # point.
+ else:
+ n = min(max(start, stop) + 1, maxsize)
+ cache_len = len(self._cache)
+ if n >= cache_len:
+ self._cache.extend(islice(self._it, n - cache_len))
+
+ return list(self._cache)[index]
+
+ def __getitem__(self, index):
+ if isinstance(index, slice):
+ return self._get_slice(index)
+
+ cache_len = len(self._cache)
+ if index < 0:
+ self._cache.extend(self._it)
+ elif index >= cache_len:
+ self._cache.extend(islice(self._it, index + 1 - cache_len))
+
+ return self._cache[index]
+
+
+def collate(*iterables, **kwargs):
+ """Return a sorted merge of the items from each of several already-sorted
+ *iterables*.
+
+ >>> list(collate('ACDZ', 'AZ', 'JKL'))
+ ['A', 'A', 'C', 'D', 'J', 'K', 'L', 'Z', 'Z']
+
+ Works lazily, keeping only the next value from each iterable in memory. Use
+ :func:`collate` to, for example, perform a n-way mergesort of items that
+ don't fit in memory.
+
+ If a *key* function is specified, the iterables will be sorted according
+ to its result:
+
+ >>> key = lambda s: int(s) # Sort by numeric value, not by string
+ >>> list(collate(['1', '10'], ['2', '11'], key=key))
+ ['1', '2', '10', '11']
+
+
+ If the *iterables* are sorted in descending order, set *reverse* to
+ ``True``:
+
+ >>> list(collate([5, 3, 1], [4, 2, 0], reverse=True))
+ [5, 4, 3, 2, 1, 0]
+
+ If the elements of the passed-in iterables are out of order, you might get
+ unexpected results.
+
+ On Python 3.5+, this function is an alias for :func:`heapq.merge`.
+
+ """
+ warnings.warn(
+ "collate is no longer part of more_itertools, use heapq.merge",
+ DeprecationWarning,
+ )
+ return merge(*iterables, **kwargs)
+
+
+def consumer(func):
+ """Decorator that automatically advances a PEP-342-style "reverse iterator"
+ to its first yield point so you don't have to call ``next()`` on it
+ manually.
+
+ >>> @consumer
+ ... def tally():
+ ... i = 0
+ ... while True:
+ ... print('Thing number %s is %s.' % (i, (yield)))
+ ... i += 1
+ ...
+ >>> t = tally()
+ >>> t.send('red')
+ Thing number 0 is red.
+ >>> t.send('fish')
+ Thing number 1 is fish.
+
+ Without the decorator, you would have to call ``next(t)`` before
+ ``t.send()`` could be used.
+
+ """
+
+ @wraps(func)
+ def wrapper(*args, **kwargs):
+ gen = func(*args, **kwargs)
+ next(gen)
+ return gen
+
+ return wrapper
+
+
+def ilen(iterable):
+ """Return the number of items in *iterable*.
+
+ >>> ilen(x for x in range(1000000) if x % 3 == 0)
+ 333334
+
+ This consumes the iterable, so handle with care.
+
+ """
+ # This approach was selected because benchmarks showed it's likely the
+ # fastest of the known implementations at the time of writing.
+ # See GitHub tracker: #236, #230.
+ counter = count()
+ deque(zip(iterable, counter), maxlen=0)
+ return next(counter)
+
+
+def iterate(func, start):
+ """Return ``start``, ``func(start)``, ``func(func(start))``, ...
+
+ >>> from itertools import islice
+ >>> list(islice(iterate(lambda x: 2*x, 1), 10))
+ [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
+
+ """
+ while True:
+ yield start
+ start = func(start)
+
+
+def with_iter(context_manager):
+ """Wrap an iterable in a ``with`` statement, so it closes once exhausted.
+
+ For example, this will close the file when the iterator is exhausted::
+
+ upper_lines = (line.upper() for line in with_iter(open('foo')))
+
+ Any context manager which returns an iterable is a candidate for
+ ``with_iter``.
+
+ """
+ with context_manager as iterable:
+ yield from iterable
+
+
+def one(iterable, too_short=None, too_long=None):
+ """Return the first item from *iterable*, which is expected to contain only
+ that item. Raise an exception if *iterable* is empty or has more than one
+ item.
+
+ :func:`one` is useful for ensuring that an iterable contains only one item.
+ For example, it can be used to retrieve the result of a database query
+ that is expected to return a single row.
+
+ If *iterable* is empty, ``ValueError`` will be raised. You may specify a
+ different exception with the *too_short* keyword:
+
+ >>> it = []
+ >>> one(it) # doctest: +IGNORE_EXCEPTION_DETAIL
+ Traceback (most recent call last):
+ ...
+ ValueError: too many items in iterable (expected 1)'
+ >>> too_short = IndexError('too few items')
+ >>> one(it, too_short=too_short) # doctest: +IGNORE_EXCEPTION_DETAIL
+ Traceback (most recent call last):
+ ...
+ IndexError: too few items
+
+ Similarly, if *iterable* contains more than one item, ``ValueError`` will
+ be raised. You may specify a different exception with the *too_long*
+ keyword:
+
+ >>> it = ['too', 'many']
+ >>> one(it) # doctest: +IGNORE_EXCEPTION_DETAIL
+ Traceback (most recent call last):
+ ...
+ ValueError: Expected exactly one item in iterable, but got 'too',
+ 'many', and perhaps more.
+ >>> too_long = RuntimeError
+ >>> one(it, too_long=too_long) # doctest: +IGNORE_EXCEPTION_DETAIL
+ Traceback (most recent call last):
+ ...
+ RuntimeError
+
+ Note that :func:`one` attempts to advance *iterable* twice to ensure there
+ is only one item. See :func:`spy` or :func:`peekable` to check iterable
+ contents less destructively.
+
+ """
+ it = iter(iterable)
+
+ try:
+ first_value = next(it)
+ except StopIteration as e:
+ raise (
+ too_short or ValueError('too few items in iterable (expected 1)')
+ ) from e
+
+ try:
+ second_value = next(it)
+ except StopIteration:
+ pass
+ else:
+ msg = (
+ 'Expected exactly one item in iterable, but got {!r}, {!r}, '
+ 'and perhaps more.'.format(first_value, second_value)
+ )
+ raise too_long or ValueError(msg)
+
+ return first_value
+
+
+def distinct_permutations(iterable, r=None):
+ """Yield successive distinct permutations of the elements in *iterable*.
+
+ >>> sorted(distinct_permutations([1, 0, 1]))
+ [(0, 1, 1), (1, 0, 1), (1, 1, 0)]
+
+ Equivalent to ``set(permutations(iterable))``, except duplicates are not
+ generated and thrown away. For larger input sequences this is much more
+ efficient.
+
+ Duplicate permutations arise when there are duplicated elements in the
+ input iterable. The number of items returned is
+ `n! / (x_1! * x_2! * ... * x_n!)`, where `n` is the total number of
+ items input, and each `x_i` is the count of a distinct item in the input
+ sequence.
+
+ If *r* is given, only the *r*-length permutations are yielded.
+
+ >>> sorted(distinct_permutations([1, 0, 1], r=2))
+ [(0, 1), (1, 0), (1, 1)]
+ >>> sorted(distinct_permutations(range(3), r=2))
+ [(0, 1), (0, 2), (1, 0), (1, 2), (2, 0), (2, 1)]
+
+ """
+ # Algorithm: https://w.wiki/Qai
+ def _full(A):
+ while True:
+ # Yield the permutation we have
+ yield tuple(A)
+
+ # Find the largest index i such that A[i] < A[i + 1]
+ for i in range(size - 2, -1, -1):
+ if A[i] < A[i + 1]:
+ break
+ # If no such index exists, this permutation is the last one
+ else:
+ return
+
+ # Find the largest index j greater than j such that A[i] < A[j]
+ for j in range(size - 1, i, -1):
+ if A[i] < A[j]:
+ break
+
+ # Swap the value of A[i] with that of A[j], then reverse the
+ # sequence from A[i + 1] to form the new permutation
+ A[i], A[j] = A[j], A[i]
+ A[i + 1 :] = A[: i - size : -1] # A[i + 1:][::-1]
+
+ # Algorithm: modified from the above
+ def _partial(A, r):
+ # Split A into the first r items and the last r items
+ head, tail = A[:r], A[r:]
+ right_head_indexes = range(r - 1, -1, -1)
+ left_tail_indexes = range(len(tail))
+
+ while True:
+ # Yield the permutation we have
+ yield tuple(head)
+
+ # Starting from the right, find the first index of the head with
+ # value smaller than the maximum value of the tail - call it i.
+ pivot = tail[-1]
+ for i in right_head_indexes:
+ if head[i] < pivot:
+ break
+ pivot = head[i]
+ else:
+ return
+
+ # Starting from the left, find the first value of the tail
+ # with a value greater than head[i] and swap.
+ for j in left_tail_indexes:
+ if tail[j] > head[i]:
+ head[i], tail[j] = tail[j], head[i]
+ break
+ # If we didn't find one, start from the right and find the first
+ # index of the head with a value greater than head[i] and swap.
+ else:
+ for j in right_head_indexes:
+ if head[j] > head[i]:
+ head[i], head[j] = head[j], head[i]
+ break
+
+ # Reverse head[i + 1:] and swap it with tail[:r - (i + 1)]
+ tail += head[: i - r : -1] # head[i + 1:][::-1]
+ i += 1
+ head[i:], tail[:] = tail[: r - i], tail[r - i :]
+
+ items = sorted(iterable)
+
+ size = len(items)
+ if r is None:
+ r = size
+
+ if 0 < r <= size:
+ return _full(items) if (r == size) else _partial(items, r)
+
+ return iter(() if r else ((),))
+
+
+def intersperse(e, iterable, n=1):
+ """Intersperse filler element *e* among the items in *iterable*, leaving
+ *n* items between each filler element.
+
+ >>> list(intersperse('!', [1, 2, 3, 4, 5]))
+ [1, '!', 2, '!', 3, '!', 4, '!', 5]
+
+ >>> list(intersperse(None, [1, 2, 3, 4, 5], n=2))
+ [1, 2, None, 3, 4, None, 5]
+
+ """
+ if n == 0:
+ raise ValueError('n must be > 0')
+ elif n == 1:
+ # interleave(repeat(e), iterable) -> e, x_0, e, e, x_1, e, x_2...
+ # islice(..., 1, None) -> x_0, e, e, x_1, e, x_2...
+ return islice(interleave(repeat(e), iterable), 1, None)
+ else:
+ # interleave(filler, chunks) -> [e], [x_0, x_1], [e], [x_2, x_3]...
+ # islice(..., 1, None) -> [x_0, x_1], [e], [x_2, x_3]...
+ # flatten(...) -> x_0, x_1, e, x_2, x_3...
+ filler = repeat([e])
+ chunks = chunked(iterable, n)
+ return flatten(islice(interleave(filler, chunks), 1, None))
+
+
+def unique_to_each(*iterables):
+ """Return the elements from each of the input iterables that aren't in the
+ other input iterables.
+
+ For example, suppose you have a set of packages, each with a set of
+ dependencies::
+
+ {'pkg_1': {'A', 'B'}, 'pkg_2': {'B', 'C'}, 'pkg_3': {'B', 'D'}}
+
+ If you remove one package, which dependencies can also be removed?
+
+ If ``pkg_1`` is removed, then ``A`` is no longer necessary - it is not
+ associated with ``pkg_2`` or ``pkg_3``. Similarly, ``C`` is only needed for
+ ``pkg_2``, and ``D`` is only needed for ``pkg_3``::
+
+ >>> unique_to_each({'A', 'B'}, {'B', 'C'}, {'B', 'D'})
+ [['A'], ['C'], ['D']]
+
+ If there are duplicates in one input iterable that aren't in the others
+ they will be duplicated in the output. Input order is preserved::
+
+ >>> unique_to_each("mississippi", "missouri")
+ [['p', 'p'], ['o', 'u', 'r']]
+
+ It is assumed that the elements of each iterable are hashable.
+
+ """
+ pool = [list(it) for it in iterables]
+ counts = Counter(chain.from_iterable(map(set, pool)))
+ uniques = {element for element in counts if counts[element] == 1}
+ return [list(filter(uniques.__contains__, it)) for it in pool]
+
+
+def windowed(seq, n, fillvalue=None, step=1):
+ """Return a sliding window of width *n* over the given iterable.
+
+ >>> all_windows = windowed([1, 2, 3, 4, 5], 3)
+ >>> list(all_windows)
+ [(1, 2, 3), (2, 3, 4), (3, 4, 5)]
+
+ When the window is larger than the iterable, *fillvalue* is used in place
+ of missing values:
+
+ >>> list(windowed([1, 2, 3], 4))
+ [(1, 2, 3, None)]
+
+ Each window will advance in increments of *step*:
+
+ >>> list(windowed([1, 2, 3, 4, 5, 6], 3, fillvalue='!', step=2))
+ [(1, 2, 3), (3, 4, 5), (5, 6, '!')]
+
+ To slide into the iterable's items, use :func:`chain` to add filler items
+ to the left:
+
+ >>> iterable = [1, 2, 3, 4]
+ >>> n = 3
+ >>> padding = [None] * (n - 1)
+ >>> list(windowed(chain(padding, iterable), 3))
+ [(None, None, 1), (None, 1, 2), (1, 2, 3), (2, 3, 4)]
+ """
+ if n < 0:
+ raise ValueError('n must be >= 0')
+ if n == 0:
+ yield tuple()
+ return
+ if step < 1:
+ raise ValueError('step must be >= 1')
+
+ window = deque(maxlen=n)
+ i = n
+ for _ in map(window.append, seq):
+ i -= 1
+ if not i:
+ i = step
+ yield tuple(window)
+
+ size = len(window)
+ if size < n:
+ yield tuple(chain(window, repeat(fillvalue, n - size)))
+ elif 0 < i < min(step, n):
+ window += (fillvalue,) * i
+ yield tuple(window)
+
+
+def substrings(iterable):
+ """Yield all of the substrings of *iterable*.
+
+ >>> [''.join(s) for s in substrings('more')]
+ ['m', 'o', 'r', 'e', 'mo', 'or', 're', 'mor', 'ore', 'more']
+
+ Note that non-string iterables can also be subdivided.
+
+ >>> list(substrings([0, 1, 2]))
+ [(0,), (1,), (2,), (0, 1), (1, 2), (0, 1, 2)]
+
+ """
+ # The length-1 substrings
+ seq = []
+ for item in iter(iterable):
+ seq.append(item)
+ yield (item,)
+ seq = tuple(seq)
+ item_count = len(seq)
+
+ # And the rest
+ for n in range(2, item_count + 1):
+ for i in range(item_count - n + 1):
+ yield seq[i : i + n]
+
+
+def substrings_indexes(seq, reverse=False):
+ """Yield all substrings and their positions in *seq*
+
+ The items yielded will be a tuple of the form ``(substr, i, j)``, where
+ ``substr == seq[i:j]``.
+
+ This function only works for iterables that support slicing, such as
+ ``str`` objects.
+
+ >>> for item in substrings_indexes('more'):
+ ... print(item)
+ ('m', 0, 1)
+ ('o', 1, 2)
+ ('r', 2, 3)
+ ('e', 3, 4)
+ ('mo', 0, 2)
+ ('or', 1, 3)
+ ('re', 2, 4)
+ ('mor', 0, 3)
+ ('ore', 1, 4)
+ ('more', 0, 4)
+
+ Set *reverse* to ``True`` to yield the same items in the opposite order.
+
+
+ """
+ r = range(1, len(seq) + 1)
+ if reverse:
+ r = reversed(r)
+ return (
+ (seq[i : i + L], i, i + L) for L in r for i in range(len(seq) - L + 1)
+ )
+
+
+class bucket:
+ """Wrap *iterable* and return an object that buckets it iterable into
+ child iterables based on a *key* function.
+
+ >>> iterable = ['a1', 'b1', 'c1', 'a2', 'b2', 'c2', 'b3']
+ >>> s = bucket(iterable, key=lambda x: x[0]) # Bucket by 1st character
+ >>> sorted(list(s)) # Get the keys
+ ['a', 'b', 'c']
+ >>> a_iterable = s['a']
+ >>> next(a_iterable)
+ 'a1'
+ >>> next(a_iterable)
+ 'a2'
+ >>> list(s['b'])
+ ['b1', 'b2', 'b3']
+
+ The original iterable will be advanced and its items will be cached until
+ they are used by the child iterables. This may require significant storage.
+
+ By default, attempting to select a bucket to which no items belong will
+ exhaust the iterable and cache all values.
+ If you specify a *validator* function, selected buckets will instead be
+ checked against it.
+
+ >>> from itertools import count
+ >>> it = count(1, 2) # Infinite sequence of odd numbers
+ >>> key = lambda x: x % 10 # Bucket by last digit
+ >>> validator = lambda x: x in {1, 3, 5, 7, 9} # Odd digits only
+ >>> s = bucket(it, key=key, validator=validator)
+ >>> 2 in s
+ False
+ >>> list(s[2])
+ []
+
+ """
+
+ def __init__(self, iterable, key, validator=None):
+ self._it = iter(iterable)
+ self._key = key
+ self._cache = defaultdict(deque)
+ self._validator = validator or (lambda x: True)
+
+ def __contains__(self, value):
+ if not self._validator(value):
+ return False
+
+ try:
+ item = next(self[value])
+ except StopIteration:
+ return False
+ else:
+ self._cache[value].appendleft(item)
+
+ return True
+
+ def _get_values(self, value):
+ """
+ Helper to yield items from the parent iterator that match *value*.
+ Items that don't match are stored in the local cache as they
+ are encountered.
+ """
+ while True:
+ # If we've cached some items that match the target value, emit
+ # the first one and evict it from the cache.
+ if self._cache[value]:
+ yield self._cache[value].popleft()
+ # Otherwise we need to advance the parent iterator to search for
+ # a matching item, caching the rest.
+ else:
+ while True:
+ try:
+ item = next(self._it)
+ except StopIteration:
+ return
+ item_value = self._key(item)
+ if item_value == value:
+ yield item
+ break
+ elif self._validator(item_value):
+ self._cache[item_value].append(item)
+
+ def __iter__(self):
+ for item in self._it:
+ item_value = self._key(item)
+ if self._validator(item_value):
+ self._cache[item_value].append(item)
+
+ yield from self._cache.keys()
+
+ def __getitem__(self, value):
+ if not self._validator(value):
+ return iter(())
+
+ return self._get_values(value)
+
+
+def spy(iterable, n=1):
+ """Return a 2-tuple with a list containing the first *n* elements of
+ *iterable*, and an iterator with the same items as *iterable*.
+ This allows you to "look ahead" at the items in the iterable without
+ advancing it.
+
+ There is one item in the list by default:
+
+ >>> iterable = 'abcdefg'
+ >>> head, iterable = spy(iterable)
+ >>> head
+ ['a']
+ >>> list(iterable)
+ ['a', 'b', 'c', 'd', 'e', 'f', 'g']
+
+ You may use unpacking to retrieve items instead of lists:
+
+ >>> (head,), iterable = spy('abcdefg')
+ >>> head
+ 'a'
+ >>> (first, second), iterable = spy('abcdefg', 2)
+ >>> first
+ 'a'
+ >>> second
+ 'b'
+
+ The number of items requested can be larger than the number of items in
+ the iterable:
+
+ >>> iterable = [1, 2, 3, 4, 5]
+ >>> head, iterable = spy(iterable, 10)
+ >>> head
+ [1, 2, 3, 4, 5]
+ >>> list(iterable)
+ [1, 2, 3, 4, 5]
+
+ """
+ it = iter(iterable)
+ head = take(n, it)
+
+ return head.copy(), chain(head, it)
+
+
+def interleave(*iterables):
+ """Return a new iterable yielding from each iterable in turn,
+ until the shortest is exhausted.
+
+ >>> list(interleave([1, 2, 3], [4, 5], [6, 7, 8]))
+ [1, 4, 6, 2, 5, 7]
+
+ For a version that doesn't terminate after the shortest iterable is
+ exhausted, see :func:`interleave_longest`.
+
+ """
+ return chain.from_iterable(zip(*iterables))
+
+
+def interleave_longest(*iterables):
+ """Return a new iterable yielding from each iterable in turn,
+ skipping any that are exhausted.
+
+ >>> list(interleave_longest([1, 2, 3], [4, 5], [6, 7, 8]))
+ [1, 4, 6, 2, 5, 7, 3, 8]
+
+ This function produces the same output as :func:`roundrobin`, but may
+ perform better for some inputs (in particular when the number of iterables
+ is large).
+
+ """
+ i = chain.from_iterable(zip_longest(*iterables, fillvalue=_marker))
+ return (x for x in i if x is not _marker)
+
+
+def collapse(iterable, base_type=None, levels=None):
+ """Flatten an iterable with multiple levels of nesting (e.g., a list of
+ lists of tuples) into non-iterable types.
+
+ >>> iterable = [(1, 2), ([3, 4], [[5], [6]])]
+ >>> list(collapse(iterable))
+ [1, 2, 3, 4, 5, 6]
+
+ Binary and text strings are not considered iterable and
+ will not be collapsed.
+
+ To avoid collapsing other types, specify *base_type*:
+
+ >>> iterable = ['ab', ('cd', 'ef'), ['gh', 'ij']]
+ >>> list(collapse(iterable, base_type=tuple))
+ ['ab', ('cd', 'ef'), 'gh', 'ij']
+
+ Specify *levels* to stop flattening after a certain level:
+
+ >>> iterable = [('a', ['b']), ('c', ['d'])]
+ >>> list(collapse(iterable)) # Fully flattened
+ ['a', 'b', 'c', 'd']
+ >>> list(collapse(iterable, levels=1)) # Only one level flattened
+ ['a', ['b'], 'c', ['d']]
+
+ """
+
+ def walk(node, level):
+ if (
+ ((levels is not None) and (level > levels))
+ or isinstance(node, (str, bytes))
+ or ((base_type is not None) and isinstance(node, base_type))
+ ):
+ yield node
+ return
+
+ try:
+ tree = iter(node)
+ except TypeError:
+ yield node
+ return
+ else:
+ for child in tree:
+ yield from walk(child, level + 1)
+
+ yield from walk(iterable, 0)
+
+
+def side_effect(func, iterable, chunk_size=None, before=None, after=None):
+ """Invoke *func* on each item in *iterable* (or on each *chunk_size* group
+ of items) before yielding the item.
+
+ `func` must be a function that takes a single argument. Its return value
+ will be discarded.
+
+ *before* and *after* are optional functions that take no arguments. They
+ will be executed before iteration starts and after it ends, respectively.
+
+ `side_effect` can be used for logging, updating progress bars, or anything
+ that is not functionally "pure."
+
+ Emitting a status message:
+
+ >>> from more_itertools import consume
+ >>> func = lambda item: print('Received {}'.format(item))
+ >>> consume(side_effect(func, range(2)))
+ Received 0
+ Received 1
+
+ Operating on chunks of items:
+
+ >>> pair_sums = []
+ >>> func = lambda chunk: pair_sums.append(sum(chunk))
+ >>> list(side_effect(func, [0, 1, 2, 3, 4, 5], 2))
+ [0, 1, 2, 3, 4, 5]
+ >>> list(pair_sums)
+ [1, 5, 9]
+
+ Writing to a file-like object:
+
+ >>> from io import StringIO
+ >>> from more_itertools import consume
+ >>> f = StringIO()
+ >>> func = lambda x: print(x, file=f)
+ >>> before = lambda: print(u'HEADER', file=f)
+ >>> after = f.close
+ >>> it = [u'a', u'b', u'c']
+ >>> consume(side_effect(func, it, before=before, after=after))
+ >>> f.closed
+ True
+
+ """
+ try:
+ if before is not None:
+ before()
+
+ if chunk_size is None:
+ for item in iterable:
+ func(item)
+ yield item
+ else:
+ for chunk in chunked(iterable, chunk_size):
+ func(chunk)
+ yield from chunk
+ finally:
+ if after is not None:
+ after()
+
+
+def sliced(seq, n, strict=False):
+ """Yield slices of length *n* from the sequence *seq*.
+
+ >>> list(sliced((1, 2, 3, 4, 5, 6), 3))
+ [(1, 2, 3), (4, 5, 6)]
+
+ By the default, the last yielded slice will have fewer than *n* elements
+ if the length of *seq* is not divisible by *n*:
+
+ >>> list(sliced((1, 2, 3, 4, 5, 6, 7, 8), 3))
+ [(1, 2, 3), (4, 5, 6), (7, 8)]
+
+ If the length of *seq* is not divisible by *n* and *strict* is
+ ``True``, then ``ValueError`` will be raised before the last
+ slice is yielded.
+
+ This function will only work for iterables that support slicing.
+ For non-sliceable iterables, see :func:`chunked`.
+
+ """
+ iterator = takewhile(len, (seq[i : i + n] for i in count(0, n)))
+ if strict:
+
+ def ret():
+ for _slice in iterator:
+ if len(_slice) != n:
+ raise ValueError("seq is not divisible by n.")
+ yield _slice
+
+ return iter(ret())
+ else:
+ return iterator
+
+
+def split_at(iterable, pred, maxsplit=-1, keep_separator=False):
+ """Yield lists of items from *iterable*, where each list is delimited by
+ an item where callable *pred* returns ``True``.
+
+ >>> list(split_at('abcdcba', lambda x: x == 'b'))
+ [['a'], ['c', 'd', 'c'], ['a']]
+
+ >>> list(split_at(range(10), lambda n: n % 2 == 1))
+ [[0], [2], [4], [6], [8], []]
+
+ At most *maxsplit* splits are done. If *maxsplit* is not specified or -1,
+ then there is no limit on the number of splits:
+
+ >>> list(split_at(range(10), lambda n: n % 2 == 1, maxsplit=2))
+ [[0], [2], [4, 5, 6, 7, 8, 9]]
+
+ By default, the delimiting items are not included in the output.
+ The include them, set *keep_separator* to ``True``.
+
+ >>> list(split_at('abcdcba', lambda x: x == 'b', keep_separator=True))
+ [['a'], ['b'], ['c', 'd', 'c'], ['b'], ['a']]
+
+ """
+ if maxsplit == 0:
+ yield list(iterable)
+ return
+
+ buf = []
+ it = iter(iterable)
+ for item in it:
+ if pred(item):
+ yield buf
+ if keep_separator:
+ yield [item]
+ if maxsplit == 1:
+ yield list(it)
+ return
+ buf = []
+ maxsplit -= 1
+ else:
+ buf.append(item)
+ yield buf
+
+
+def split_before(iterable, pred, maxsplit=-1):
+ """Yield lists of items from *iterable*, where each list ends just before
+ an item for which callable *pred* returns ``True``:
+
+ >>> list(split_before('OneTwo', lambda s: s.isupper()))
+ [['O', 'n', 'e'], ['T', 'w', 'o']]
+
+ >>> list(split_before(range(10), lambda n: n % 3 == 0))
+ [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]]
+
+ At most *maxsplit* splits are done. If *maxsplit* is not specified or -1,
+ then there is no limit on the number of splits:
+
+ >>> list(split_before(range(10), lambda n: n % 3 == 0, maxsplit=2))
+ [[0, 1, 2], [3, 4, 5], [6, 7, 8, 9]]
+ """
+ if maxsplit == 0:
+ yield list(iterable)
+ return
+
+ buf = []
+ it = iter(iterable)
+ for item in it:
+ if pred(item) and buf:
+ yield buf
+ if maxsplit == 1:
+ yield [item] + list(it)
+ return
+ buf = []
+ maxsplit -= 1
+ buf.append(item)
+ if buf:
+ yield buf
+
+
+def split_after(iterable, pred, maxsplit=-1):
+ """Yield lists of items from *iterable*, where each list ends with an
+ item where callable *pred* returns ``True``:
+
+ >>> list(split_after('one1two2', lambda s: s.isdigit()))
+ [['o', 'n', 'e', '1'], ['t', 'w', 'o', '2']]
+
+ >>> list(split_after(range(10), lambda n: n % 3 == 0))
+ [[0], [1, 2, 3], [4, 5, 6], [7, 8, 9]]
+
+ At most *maxsplit* splits are done. If *maxsplit* is not specified or -1,
+ then there is no limit on the number of splits:
+
+ >>> list(split_after(range(10), lambda n: n % 3 == 0, maxsplit=2))
+ [[0], [1, 2, 3], [4, 5, 6, 7, 8, 9]]
+
+ """
+ if maxsplit == 0:
+ yield list(iterable)
+ return
+
+ buf = []
+ it = iter(iterable)
+ for item in it:
+ buf.append(item)
+ if pred(item) and buf:
+ yield buf
+ if maxsplit == 1:
+ yield list(it)
+ return
+ buf = []
+ maxsplit -= 1
+ if buf:
+ yield buf
+
+
+def split_when(iterable, pred, maxsplit=-1):
+ """Split *iterable* into pieces based on the output of *pred*.
+ *pred* should be a function that takes successive pairs of items and
+ returns ``True`` if the iterable should be split in between them.
+
+ For example, to find runs of increasing numbers, split the iterable when
+ element ``i`` is larger than element ``i + 1``:
+
+ >>> list(split_when([1, 2, 3, 3, 2, 5, 2, 4, 2], lambda x, y: x > y))
+ [[1, 2, 3, 3], [2, 5], [2, 4], [2]]
+
+ At most *maxsplit* splits are done. If *maxsplit* is not specified or -1,
+ then there is no limit on the number of splits:
+
+ >>> list(split_when([1, 2, 3, 3, 2, 5, 2, 4, 2],
+ ... lambda x, y: x > y, maxsplit=2))
+ [[1, 2, 3, 3], [2, 5], [2, 4, 2]]
+
+ """
+ if maxsplit == 0:
+ yield list(iterable)
+ return
+
+ it = iter(iterable)
+ try:
+ cur_item = next(it)
+ except StopIteration:
+ return
+
+ buf = [cur_item]
+ for next_item in it:
+ if pred(cur_item, next_item):
+ yield buf
+ if maxsplit == 1:
+ yield [next_item] + list(it)
+ return
+ buf = []
+ maxsplit -= 1
+
+ buf.append(next_item)
+ cur_item = next_item
+
+ yield buf
+
+
+def split_into(iterable, sizes):
+ """Yield a list of sequential items from *iterable* of length 'n' for each
+ integer 'n' in *sizes*.
+
+ >>> list(split_into([1,2,3,4,5,6], [1,2,3]))
+ [[1], [2, 3], [4, 5, 6]]
+
+ If the sum of *sizes* is smaller than the length of *iterable*, then the
+ remaining items of *iterable* will not be returned.
+
+ >>> list(split_into([1,2,3,4,5,6], [2,3]))
+ [[1, 2], [3, 4, 5]]
+
+ If the sum of *sizes* is larger than the length of *iterable*, fewer items
+ will be returned in the iteration that overruns *iterable* and further
+ lists will be empty:
+
+ >>> list(split_into([1,2,3,4], [1,2,3,4]))
+ [[1], [2, 3], [4], []]
+
+ When a ``None`` object is encountered in *sizes*, the returned list will
+ contain items up to the end of *iterable* the same way that itertools.slice
+ does:
+
+ >>> list(split_into([1,2,3,4,5,6,7,8,9,0], [2,3,None]))
+ [[1, 2], [3, 4, 5], [6, 7, 8, 9, 0]]
+
+ :func:`split_into` can be useful for grouping a series of items where the
+ sizes of the groups are not uniform. An example would be where in a row
+ from a table, multiple columns represent elements of the same feature
+ (e.g. a point represented by x,y,z) but, the format is not the same for
+ all columns.
+ """
+ # convert the iterable argument into an iterator so its contents can
+ # be consumed by islice in case it is a generator
+ it = iter(iterable)
+
+ for size in sizes:
+ if size is None:
+ yield list(it)
+ return
+ else:
+ yield list(islice(it, size))
+
+
+def padded(iterable, fillvalue=None, n=None, next_multiple=False):
+ """Yield the elements from *iterable*, followed by *fillvalue*, such that
+ at least *n* items are emitted.
+
+ >>> list(padded([1, 2, 3], '?', 5))
+ [1, 2, 3, '?', '?']
+
+ If *next_multiple* is ``True``, *fillvalue* will be emitted until the
+ number of items emitted is a multiple of *n*::
+
+ >>> list(padded([1, 2, 3, 4], n=3, next_multiple=True))
+ [1, 2, 3, 4, None, None]
+
+ If *n* is ``None``, *fillvalue* will be emitted indefinitely.
+
+ """
+ it = iter(iterable)
+ if n is None:
+ yield from chain(it, repeat(fillvalue))
+ elif n < 1:
+ raise ValueError('n must be at least 1')
+ else:
+ item_count = 0
+ for item in it:
+ yield item
+ item_count += 1
+
+ remaining = (n - item_count) % n if next_multiple else n - item_count
+ for _ in range(remaining):
+ yield fillvalue
+
+
+def repeat_last(iterable, default=None):
+ """After the *iterable* is exhausted, keep yielding its last element.
+
+ >>> list(islice(repeat_last(range(3)), 5))
+ [0, 1, 2, 2, 2]
+
+ If the iterable is empty, yield *default* forever::
+
+ >>> list(islice(repeat_last(range(0), 42), 5))
+ [42, 42, 42, 42, 42]
+
+ """
+ item = _marker
+ for item in iterable:
+ yield item
+ final = default if item is _marker else item
+ yield from repeat(final)
+
+
+def distribute(n, iterable):
+ """Distribute the items from *iterable* among *n* smaller iterables.
+
+ >>> group_1, group_2 = distribute(2, [1, 2, 3, 4, 5, 6])
+ >>> list(group_1)
+ [1, 3, 5]
+ >>> list(group_2)
+ [2, 4, 6]
+
+ If the length of *iterable* is not evenly divisible by *n*, then the
+ length of the returned iterables will not be identical:
+
+ >>> children = distribute(3, [1, 2, 3, 4, 5, 6, 7])
+ >>> [list(c) for c in children]
+ [[1, 4, 7], [2, 5], [3, 6]]
+
+ If the length of *iterable* is smaller than *n*, then the last returned
+ iterables will be empty:
+
+ >>> children = distribute(5, [1, 2, 3])
+ >>> [list(c) for c in children]
+ [[1], [2], [3], [], []]
+
+ This function uses :func:`itertools.tee` and may require significant
+ storage. If you need the order items in the smaller iterables to match the
+ original iterable, see :func:`divide`.
+
+ """
+ if n < 1:
+ raise ValueError('n must be at least 1')
+
+ children = tee(iterable, n)
+ return [islice(it, index, None, n) for index, it in enumerate(children)]
+
+
+def stagger(iterable, offsets=(-1, 0, 1), longest=False, fillvalue=None):
+ """Yield tuples whose elements are offset from *iterable*.
+ The amount by which the `i`-th item in each tuple is offset is given by
+ the `i`-th item in *offsets*.
+
+ >>> list(stagger([0, 1, 2, 3]))
+ [(None, 0, 1), (0, 1, 2), (1, 2, 3)]
+ >>> list(stagger(range(8), offsets=(0, 2, 4)))
+ [(0, 2, 4), (1, 3, 5), (2, 4, 6), (3, 5, 7)]
+
+ By default, the sequence will end when the final element of a tuple is the
+ last item in the iterable. To continue until the first element of a tuple
+ is the last item in the iterable, set *longest* to ``True``::
+
+ >>> list(stagger([0, 1, 2, 3], longest=True))
+ [(None, 0, 1), (0, 1, 2), (1, 2, 3), (2, 3, None), (3, None, None)]
+
+ By default, ``None`` will be used to replace offsets beyond the end of the
+ sequence. Specify *fillvalue* to use some other value.
+
+ """
+ children = tee(iterable, len(offsets))
+
+ return zip_offset(
+ *children, offsets=offsets, longest=longest, fillvalue=fillvalue
+ )
+
+
+class UnequalIterablesError(ValueError):
+ def __init__(self, details=None):
+ msg = 'Iterables have different lengths'
+ if details is not None:
+ msg += (': index 0 has length {}; index {} has length {}').format(
+ *details
+ )
+
+ super().__init__(msg)
+
+
+def _zip_equal_generator(iterables):
+ for combo in zip_longest(*iterables, fillvalue=_marker):
+ for val in combo:
+ if val is _marker:
+ raise UnequalIterablesError()
+ yield combo
+
+
+def zip_equal(*iterables):
+ """``zip`` the input *iterables* together, but raise
+ ``UnequalIterablesError`` if they aren't all the same length.
+
+ >>> it_1 = range(3)
+ >>> it_2 = iter('abc')
+ >>> list(zip_equal(it_1, it_2))
+ [(0, 'a'), (1, 'b'), (2, 'c')]
+
+ >>> it_1 = range(3)
+ >>> it_2 = iter('abcd')
+ >>> list(zip_equal(it_1, it_2)) # doctest: +IGNORE_EXCEPTION_DETAIL
+ Traceback (most recent call last):
+ ...
+ more_itertools.more.UnequalIterablesError: Iterables have different
+ lengths
+
+ """
+ if hexversion >= 0x30A00A6:
+ warnings.warn(
+ (
+ 'zip_equal will be removed in a future version of '
+ 'more-itertools. Use the builtin zip function with '
+ 'strict=True instead.'
+ ),
+ DeprecationWarning,
+ )
+ # Check whether the iterables are all the same size.
+ try:
+ first_size = len(iterables[0])
+ for i, it in enumerate(iterables[1:], 1):
+ size = len(it)
+ if size != first_size:
+ break
+ else:
+ # If we didn't break out, we can use the built-in zip.
+ return zip(*iterables)
+
+ # If we did break out, there was a mismatch.
+ raise UnequalIterablesError(details=(first_size, i, size))
+ # If any one of the iterables didn't have a length, start reading
+ # them until one runs out.
+ except TypeError:
+ return _zip_equal_generator(iterables)
+
+
+def zip_offset(*iterables, offsets, longest=False, fillvalue=None):
+ """``zip`` the input *iterables* together, but offset the `i`-th iterable
+ by the `i`-th item in *offsets*.
+
+ >>> list(zip_offset('0123', 'abcdef', offsets=(0, 1)))
+ [('0', 'b'), ('1', 'c'), ('2', 'd'), ('3', 'e')]
+
+ This can be used as a lightweight alternative to SciPy or pandas to analyze
+ data sets in which some series have a lead or lag relationship.
+
+ By default, the sequence will end when the shortest iterable is exhausted.
+ To continue until the longest iterable is exhausted, set *longest* to
+ ``True``.
+
+ >>> list(zip_offset('0123', 'abcdef', offsets=(0, 1), longest=True))
+ [('0', 'b'), ('1', 'c'), ('2', 'd'), ('3', 'e'), (None, 'f')]
+
+ By default, ``None`` will be used to replace offsets beyond the end of the
+ sequence. Specify *fillvalue* to use some other value.
+
+ """
+ if len(iterables) != len(offsets):
+ raise ValueError("Number of iterables and offsets didn't match")
+
+ staggered = []
+ for it, n in zip(iterables, offsets):
+ if n < 0:
+ staggered.append(chain(repeat(fillvalue, -n), it))
+ elif n > 0:
+ staggered.append(islice(it, n, None))
+ else:
+ staggered.append(it)
+
+ if longest:
+ return zip_longest(*staggered, fillvalue=fillvalue)
+
+ return zip(*staggered)
+
+
+def sort_together(iterables, key_list=(0,), key=None, reverse=False):
+ """Return the input iterables sorted together, with *key_list* as the
+ priority for sorting. All iterables are trimmed to the length of the
+ shortest one.
+
+ This can be used like the sorting function in a spreadsheet. If each
+ iterable represents a column of data, the key list determines which
+ columns are used for sorting.
+
+ By default, all iterables are sorted using the ``0``-th iterable::
+
+ >>> iterables = [(4, 3, 2, 1), ('a', 'b', 'c', 'd')]
+ >>> sort_together(iterables)
+ [(1, 2, 3, 4), ('d', 'c', 'b', 'a')]
+
+ Set a different key list to sort according to another iterable.
+ Specifying multiple keys dictates how ties are broken::
+
+ >>> iterables = [(3, 1, 2), (0, 1, 0), ('c', 'b', 'a')]
+ >>> sort_together(iterables, key_list=(1, 2))
+ [(2, 3, 1), (0, 0, 1), ('a', 'c', 'b')]
+
+ To sort by a function of the elements of the iterable, pass a *key*
+ function. Its arguments are the elements of the iterables corresponding to
+ the key list::
+
+ >>> names = ('a', 'b', 'c')
+ >>> lengths = (1, 2, 3)
+ >>> widths = (5, 2, 1)
+ >>> def area(length, width):
+ ... return length * width
+ >>> sort_together([names, lengths, widths], key_list=(1, 2), key=area)
+ [('c', 'b', 'a'), (3, 2, 1), (1, 2, 5)]
+
+ Set *reverse* to ``True`` to sort in descending order.
+
+ >>> sort_together([(1, 2, 3), ('c', 'b', 'a')], reverse=True)
+ [(3, 2, 1), ('a', 'b', 'c')]
+
+ """
+ if key is None:
+ # if there is no key function, the key argument to sorted is an
+ # itemgetter
+ key_argument = itemgetter(*key_list)
+ else:
+ # if there is a key function, call it with the items at the offsets
+ # specified by the key function as arguments
+ key_list = list(key_list)
+ if len(key_list) == 1:
+ # if key_list contains a single item, pass the item at that offset
+ # as the only argument to the key function
+ key_offset = key_list[0]
+ key_argument = lambda zipped_items: key(zipped_items[key_offset])
+ else:
+ # if key_list contains multiple items, use itemgetter to return a
+ # tuple of items, which we pass as *args to the key function
+ get_key_items = itemgetter(*key_list)
+ key_argument = lambda zipped_items: key(
+ *get_key_items(zipped_items)
+ )
+
+ return list(
+ zip(*sorted(zip(*iterables), key=key_argument, reverse=reverse))
+ )
+
+
+def unzip(iterable):
+ """The inverse of :func:`zip`, this function disaggregates the elements
+ of the zipped *iterable*.
+
+ The ``i``-th iterable contains the ``i``-th element from each element
+ of the zipped iterable. The first element is used to to determine the
+ length of the remaining elements.
+
+ >>> iterable = [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
+ >>> letters, numbers = unzip(iterable)
+ >>> list(letters)
+ ['a', 'b', 'c', 'd']
+ >>> list(numbers)
+ [1, 2, 3, 4]
+
+ This is similar to using ``zip(*iterable)``, but it avoids reading
+ *iterable* into memory. Note, however, that this function uses
+ :func:`itertools.tee` and thus may require significant storage.
+
+ """
+ head, iterable = spy(iter(iterable))
+ if not head:
+ # empty iterable, e.g. zip([], [], [])
+ return ()
+ # spy returns a one-length iterable as head
+ head = head[0]
+ iterables = tee(iterable, len(head))
+
+ def itemgetter(i):
+ def getter(obj):
+ try:
+ return obj[i]
+ except IndexError:
+ # basically if we have an iterable like
+ # iter([(1, 2, 3), (4, 5), (6,)])
+ # the second unzipped iterable would fail at the third tuple
+ # since it would try to access tup[1]
+ # same with the third unzipped iterable and the second tuple
+ # to support these "improperly zipped" iterables,
+ # we create a custom itemgetter
+ # which just stops the unzipped iterables
+ # at first length mismatch
+ raise StopIteration
+
+ return getter
+
+ return tuple(map(itemgetter(i), it) for i, it in enumerate(iterables))
+
+
+def divide(n, iterable):
+ """Divide the elements from *iterable* into *n* parts, maintaining
+ order.
+
+ >>> group_1, group_2 = divide(2, [1, 2, 3, 4, 5, 6])
+ >>> list(group_1)
+ [1, 2, 3]
+ >>> list(group_2)
+ [4, 5, 6]
+
+ If the length of *iterable* is not evenly divisible by *n*, then the
+ length of the returned iterables will not be identical:
+
+ >>> children = divide(3, [1, 2, 3, 4, 5, 6, 7])
+ >>> [list(c) for c in children]
+ [[1, 2, 3], [4, 5], [6, 7]]
+
+ If the length of the iterable is smaller than n, then the last returned
+ iterables will be empty:
+
+ >>> children = divide(5, [1, 2, 3])
+ >>> [list(c) for c in children]
+ [[1], [2], [3], [], []]
+
+ This function will exhaust the iterable before returning and may require
+ significant storage. If order is not important, see :func:`distribute`,
+ which does not first pull the iterable into memory.
+
+ """
+ if n < 1:
+ raise ValueError('n must be at least 1')
+
+ try:
+ iterable[:0]
+ except TypeError:
+ seq = tuple(iterable)
+ else:
+ seq = iterable
+
+ q, r = divmod(len(seq), n)
+
+ ret = []
+ stop = 0
+ for i in range(1, n + 1):
+ start = stop
+ stop += q + 1 if i <= r else q
+ ret.append(iter(seq[start:stop]))
+
+ return ret
+
+
+def always_iterable(obj, base_type=(str, bytes)):
+ """If *obj* is iterable, return an iterator over its items::
+
+ >>> obj = (1, 2, 3)
+ >>> list(always_iterable(obj))
+ [1, 2, 3]
+
+ If *obj* is not iterable, return a one-item iterable containing *obj*::
+
+ >>> obj = 1
+ >>> list(always_iterable(obj))
+ [1]
+
+ If *obj* is ``None``, return an empty iterable:
+
+ >>> obj = None
+ >>> list(always_iterable(None))
+ []
+
+ By default, binary and text strings are not considered iterable::
+
+ >>> obj = 'foo'
+ >>> list(always_iterable(obj))
+ ['foo']
+
+ If *base_type* is set, objects for which ``isinstance(obj, base_type)``
+ returns ``True`` won't be considered iterable.
+
+ >>> obj = {'a': 1}
+ >>> list(always_iterable(obj)) # Iterate over the dict's keys
+ ['a']
+ >>> list(always_iterable(obj, base_type=dict)) # Treat dicts as a unit
+ [{'a': 1}]
+
+ Set *base_type* to ``None`` to avoid any special handling and treat objects
+ Python considers iterable as iterable:
+
+ >>> obj = 'foo'
+ >>> list(always_iterable(obj, base_type=None))
+ ['f', 'o', 'o']
+ """
+ if obj is None:
+ return iter(())
+
+ if (base_type is not None) and isinstance(obj, base_type):
+ return iter((obj,))
+
+ try:
+ return iter(obj)
+ except TypeError:
+ return iter((obj,))
+
+
+def adjacent(predicate, iterable, distance=1):
+ """Return an iterable over `(bool, item)` tuples where the `item` is
+ drawn from *iterable* and the `bool` indicates whether
+ that item satisfies the *predicate* or is adjacent to an item that does.
+
+ For example, to find whether items are adjacent to a ``3``::
+
+ >>> list(adjacent(lambda x: x == 3, range(6)))
+ [(False, 0), (False, 1), (True, 2), (True, 3), (True, 4), (False, 5)]
+
+ Set *distance* to change what counts as adjacent. For example, to find
+ whether items are two places away from a ``3``:
+
+ >>> list(adjacent(lambda x: x == 3, range(6), distance=2))
+ [(False, 0), (True, 1), (True, 2), (True, 3), (True, 4), (True, 5)]
+
+ This is useful for contextualizing the results of a search function.
+ For example, a code comparison tool might want to identify lines that
+ have changed, but also surrounding lines to give the viewer of the diff
+ context.
+
+ The predicate function will only be called once for each item in the
+ iterable.
+
+ See also :func:`groupby_transform`, which can be used with this function
+ to group ranges of items with the same `bool` value.
+
+ """
+ # Allow distance=0 mainly for testing that it reproduces results with map()
+ if distance < 0:
+ raise ValueError('distance must be at least 0')
+
+ i1, i2 = tee(iterable)
+ padding = [False] * distance
+ selected = chain(padding, map(predicate, i1), padding)
+ adjacent_to_selected = map(any, windowed(selected, 2 * distance + 1))
+ return zip(adjacent_to_selected, i2)
+
+
+def groupby_transform(iterable, keyfunc=None, valuefunc=None, reducefunc=None):
+ """An extension of :func:`itertools.groupby` that can apply transformations
+ to the grouped data.
+
+ * *keyfunc* is a function computing a key value for each item in *iterable*
+ * *valuefunc* is a function that transforms the individual items from
+ *iterable* after grouping
+ * *reducefunc* is a function that transforms each group of items
+
+ >>> iterable = 'aAAbBBcCC'
+ >>> keyfunc = lambda k: k.upper()
+ >>> valuefunc = lambda v: v.lower()
+ >>> reducefunc = lambda g: ''.join(g)
+ >>> list(groupby_transform(iterable, keyfunc, valuefunc, reducefunc))
+ [('A', 'aaa'), ('B', 'bbb'), ('C', 'ccc')]
+
+ Each optional argument defaults to an identity function if not specified.
+
+ :func:`groupby_transform` is useful when grouping elements of an iterable
+ using a separate iterable as the key. To do this, :func:`zip` the iterables
+ and pass a *keyfunc* that extracts the first element and a *valuefunc*
+ that extracts the second element::
+
+ >>> from operator import itemgetter
+ >>> keys = [0, 0, 1, 1, 1, 2, 2, 2, 3]
+ >>> values = 'abcdefghi'
+ >>> iterable = zip(keys, values)
+ >>> grouper = groupby_transform(iterable, itemgetter(0), itemgetter(1))
+ >>> [(k, ''.join(g)) for k, g in grouper]
+ [(0, 'ab'), (1, 'cde'), (2, 'fgh'), (3, 'i')]
+
+ Note that the order of items in the iterable is significant.
+ Only adjacent items are grouped together, so if you don't want any
+ duplicate groups, you should sort the iterable by the key function.
+
+ """
+ ret = groupby(iterable, keyfunc)
+ if valuefunc:
+ ret = ((k, map(valuefunc, g)) for k, g in ret)
+ if reducefunc:
+ ret = ((k, reducefunc(g)) for k, g in ret)
+
+ return ret
+
+
+class numeric_range(abc.Sequence, abc.Hashable):
+ """An extension of the built-in ``range()`` function whose arguments can
+ be any orderable numeric type.
+
+ With only *stop* specified, *start* defaults to ``0`` and *step*
+ defaults to ``1``. The output items will match the type of *stop*:
+
+ >>> list(numeric_range(3.5))
+ [0.0, 1.0, 2.0, 3.0]
+
+ With only *start* and *stop* specified, *step* defaults to ``1``. The
+ output items will match the type of *start*:
+
+ >>> from decimal import Decimal
+ >>> start = Decimal('2.1')
+ >>> stop = Decimal('5.1')
+ >>> list(numeric_range(start, stop))
+ [Decimal('2.1'), Decimal('3.1'), Decimal('4.1')]
+
+ With *start*, *stop*, and *step* specified the output items will match
+ the type of ``start + step``:
+
+ >>> from fractions import Fraction
+ >>> start = Fraction(1, 2) # Start at 1/2
+ >>> stop = Fraction(5, 2) # End at 5/2
+ >>> step = Fraction(1, 2) # Count by 1/2
+ >>> list(numeric_range(start, stop, step))
+ [Fraction(1, 2), Fraction(1, 1), Fraction(3, 2), Fraction(2, 1)]
+
+ If *step* is zero, ``ValueError`` is raised. Negative steps are supported:
+
+ >>> list(numeric_range(3, -1, -1.0))
+ [3.0, 2.0, 1.0, 0.0]
+
+ Be aware of the limitations of floating point numbers; the representation
+ of the yielded numbers may be surprising.
+
+ ``datetime.datetime`` objects can be used for *start* and *stop*, if *step*
+ is a ``datetime.timedelta`` object:
+
+ >>> import datetime
+ >>> start = datetime.datetime(2019, 1, 1)
+ >>> stop = datetime.datetime(2019, 1, 3)
+ >>> step = datetime.timedelta(days=1)
+ >>> items = iter(numeric_range(start, stop, step))
+ >>> next(items)
+ datetime.datetime(2019, 1, 1, 0, 0)
+ >>> next(items)
+ datetime.datetime(2019, 1, 2, 0, 0)
+
+ """
+
+ _EMPTY_HASH = hash(range(0, 0))
+
+ def __init__(self, *args):
+ argc = len(args)
+ if argc == 1:
+ (self._stop,) = args
+ self._start = type(self._stop)(0)
+ self._step = type(self._stop - self._start)(1)
+ elif argc == 2:
+ self._start, self._stop = args
+ self._step = type(self._stop - self._start)(1)
+ elif argc == 3:
+ self._start, self._stop, self._step = args
+ elif argc == 0:
+ raise TypeError(
+ 'numeric_range expected at least '
+ '1 argument, got {}'.format(argc)
+ )
+ else:
+ raise TypeError(
+ 'numeric_range expected at most '
+ '3 arguments, got {}'.format(argc)
+ )
+
+ self._zero = type(self._step)(0)
+ if self._step == self._zero:
+ raise ValueError('numeric_range() arg 3 must not be zero')
+ self._growing = self._step > self._zero
+ self._init_len()
+
+ def __bool__(self):
+ if self._growing:
+ return self._start < self._stop
+ else:
+ return self._start > self._stop
+
+ def __contains__(self, elem):
+ if self._growing:
+ if self._start <= elem < self._stop:
+ return (elem - self._start) % self._step == self._zero
+ else:
+ if self._start >= elem > self._stop:
+ return (self._start - elem) % (-self._step) == self._zero
+
+ return False
+
+ def __eq__(self, other):
+ if isinstance(other, numeric_range):
+ empty_self = not bool(self)
+ empty_other = not bool(other)
+ if empty_self or empty_other:
+ return empty_self and empty_other # True if both empty
+ else:
+ return (
+ self._start == other._start
+ and self._step == other._step
+ and self._get_by_index(-1) == other._get_by_index(-1)
+ )
+ else:
+ return False
+
+ def __getitem__(self, key):
+ if isinstance(key, int):
+ return self._get_by_index(key)
+ elif isinstance(key, slice):
+ step = self._step if key.step is None else key.step * self._step
+
+ if key.start is None or key.start <= -self._len:
+ start = self._start
+ elif key.start >= self._len:
+ start = self._stop
+ else: # -self._len < key.start < self._len
+ start = self._get_by_index(key.start)
+
+ if key.stop is None or key.stop >= self._len:
+ stop = self._stop
+ elif key.stop <= -self._len:
+ stop = self._start
+ else: # -self._len < key.stop < self._len
+ stop = self._get_by_index(key.stop)
+
+ return numeric_range(start, stop, step)
+ else:
+ raise TypeError(
+ 'numeric range indices must be '
+ 'integers or slices, not {}'.format(type(key).__name__)
+ )
+
+ def __hash__(self):
+ if self:
+ return hash((self._start, self._get_by_index(-1), self._step))
+ else:
+ return self._EMPTY_HASH
+
+ def __iter__(self):
+ values = (self._start + (n * self._step) for n in count())
+ if self._growing:
+ return takewhile(partial(gt, self._stop), values)
+ else:
+ return takewhile(partial(lt, self._stop), values)
+
+ def __len__(self):
+ return self._len
+
+ def _init_len(self):
+ if self._growing:
+ start = self._start
+ stop = self._stop
+ step = self._step
+ else:
+ start = self._stop
+ stop = self._start
+ step = -self._step
+ distance = stop - start
+ if distance <= self._zero:
+ self._len = 0
+ else: # distance > 0 and step > 0: regular euclidean division
+ q, r = divmod(distance, step)
+ self._len = int(q) + int(r != self._zero)
+
+ def __reduce__(self):
+ return numeric_range, (self._start, self._stop, self._step)
+
+ def __repr__(self):
+ if self._step == 1:
+ return "numeric_range({}, {})".format(
+ repr(self._start), repr(self._stop)
+ )
+ else:
+ return "numeric_range({}, {}, {})".format(
+ repr(self._start), repr(self._stop), repr(self._step)
+ )
+
+ def __reversed__(self):
+ return iter(
+ numeric_range(
+ self._get_by_index(-1), self._start - self._step, -self._step
+ )
+ )
+
+ def count(self, value):
+ return int(value in self)
+
+ def index(self, value):
+ if self._growing:
+ if self._start <= value < self._stop:
+ q, r = divmod(value - self._start, self._step)
+ if r == self._zero:
+ return int(q)
+ else:
+ if self._start >= value > self._stop:
+ q, r = divmod(self._start - value, -self._step)
+ if r == self._zero:
+ return int(q)
+
+ raise ValueError("{} is not in numeric range".format(value))
+
+ def _get_by_index(self, i):
+ if i < 0:
+ i += self._len
+ if i < 0 or i >= self._len:
+ raise IndexError("numeric range object index out of range")
+ return self._start + i * self._step
+
+
+def count_cycle(iterable, n=None):
+ """Cycle through the items from *iterable* up to *n* times, yielding
+ the number of completed cycles along with each item. If *n* is omitted the
+ process repeats indefinitely.
+
+ >>> list(count_cycle('AB', 3))
+ [(0, 'A'), (0, 'B'), (1, 'A'), (1, 'B'), (2, 'A'), (2, 'B')]
+
+ """
+ iterable = tuple(iterable)
+ if not iterable:
+ return iter(())
+ counter = count() if n is None else range(n)
+ return ((i, item) for i in counter for item in iterable)
+
+
+def mark_ends(iterable):
+ """Yield 3-tuples of the form ``(is_first, is_last, item)``.
+
+ >>> list(mark_ends('ABC'))
+ [(True, False, 'A'), (False, False, 'B'), (False, True, 'C')]
+
+ Use this when looping over an iterable to take special action on its first
+ and/or last items:
+
+ >>> iterable = ['Header', 100, 200, 'Footer']
+ >>> total = 0
+ >>> for is_first, is_last, item in mark_ends(iterable):
+ ... if is_first:
+ ... continue # Skip the header
+ ... if is_last:
+ ... continue # Skip the footer
+ ... total += item
+ >>> print(total)
+ 300
+ """
+ it = iter(iterable)
+
+ try:
+ b = next(it)
+ except StopIteration:
+ return
+
+ try:
+ for i in count():
+ a = b
+ b = next(it)
+ yield i == 0, False, a
+
+ except StopIteration:
+ yield i == 0, True, a
+
+
+def locate(iterable, pred=bool, window_size=None):
+ """Yield the index of each item in *iterable* for which *pred* returns
+ ``True``.
+
+ *pred* defaults to :func:`bool`, which will select truthy items:
+
+ >>> list(locate([0, 1, 1, 0, 1, 0, 0]))
+ [1, 2, 4]
+
+ Set *pred* to a custom function to, e.g., find the indexes for a particular
+ item.
+
+ >>> list(locate(['a', 'b', 'c', 'b'], lambda x: x == 'b'))
+ [1, 3]
+
+ If *window_size* is given, then the *pred* function will be called with
+ that many items. This enables searching for sub-sequences:
+
+ >>> iterable = [0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]
+ >>> pred = lambda *args: args == (1, 2, 3)
+ >>> list(locate(iterable, pred=pred, window_size=3))
+ [1, 5, 9]
+
+ Use with :func:`seekable` to find indexes and then retrieve the associated
+ items:
+
+ >>> from itertools import count
+ >>> from more_itertools import seekable
+ >>> source = (3 * n + 1 if (n % 2) else n // 2 for n in count())
+ >>> it = seekable(source)
+ >>> pred = lambda x: x > 100
+ >>> indexes = locate(it, pred=pred)
+ >>> i = next(indexes)
+ >>> it.seek(i)
+ >>> next(it)
+ 106
+
+ """
+ if window_size is None:
+ return compress(count(), map(pred, iterable))
+
+ if window_size < 1:
+ raise ValueError('window size must be at least 1')
+
+ it = windowed(iterable, window_size, fillvalue=_marker)
+ return compress(count(), starmap(pred, it))
+
+
+def lstrip(iterable, pred):
+ """Yield the items from *iterable*, but strip any from the beginning
+ for which *pred* returns ``True``.
+
+ For example, to remove a set of items from the start of an iterable:
+
+ >>> iterable = (None, False, None, 1, 2, None, 3, False, None)
+ >>> pred = lambda x: x in {None, False, ''}
+ >>> list(lstrip(iterable, pred))
+ [1, 2, None, 3, False, None]
+
+ This function is analogous to to :func:`str.lstrip`, and is essentially
+ an wrapper for :func:`itertools.dropwhile`.
+
+ """
+ return dropwhile(pred, iterable)
+
+
+def rstrip(iterable, pred):
+ """Yield the items from *iterable*, but strip any from the end
+ for which *pred* returns ``True``.
+
+ For example, to remove a set of items from the end of an iterable:
+
+ >>> iterable = (None, False, None, 1, 2, None, 3, False, None)
+ >>> pred = lambda x: x in {None, False, ''}
+ >>> list(rstrip(iterable, pred))
+ [None, False, None, 1, 2, None, 3]
+
+ This function is analogous to :func:`str.rstrip`.
+
+ """
+ cache = []
+ cache_append = cache.append
+ cache_clear = cache.clear
+ for x in iterable:
+ if pred(x):
+ cache_append(x)
+ else:
+ yield from cache
+ cache_clear()
+ yield x
+
+
+def strip(iterable, pred):
+ """Yield the items from *iterable*, but strip any from the
+ beginning and end for which *pred* returns ``True``.
+
+ For example, to remove a set of items from both ends of an iterable:
+
+ >>> iterable = (None, False, None, 1, 2, None, 3, False, None)
+ >>> pred = lambda x: x in {None, False, ''}
+ >>> list(strip(iterable, pred))
+ [1, 2, None, 3]
+
+ This function is analogous to :func:`str.strip`.
+
+ """
+ return rstrip(lstrip(iterable, pred), pred)
+
+
+class islice_extended:
+ """An extension of :func:`itertools.islice` that supports negative values
+ for *stop*, *start*, and *step*.
+
+ >>> iterable = iter('abcdefgh')
+ >>> list(islice_extended(iterable, -4, -1))
+ ['e', 'f', 'g']
+
+ Slices with negative values require some caching of *iterable*, but this
+ function takes care to minimize the amount of memory required.
+
+ For example, you can use a negative step with an infinite iterator:
+
+ >>> from itertools import count
+ >>> list(islice_extended(count(), 110, 99, -2))
+ [110, 108, 106, 104, 102, 100]
+
+ You can also use slice notation directly:
+
+ >>> iterable = map(str, count())
+ >>> it = islice_extended(iterable)[10:20:2]
+ >>> list(it)
+ ['10', '12', '14', '16', '18']
+
+ """
+
+ def __init__(self, iterable, *args):
+ it = iter(iterable)
+ if args:
+ self._iterable = _islice_helper(it, slice(*args))
+ else:
+ self._iterable = it
+
+ def __iter__(self):
+ return self
+
+ def __next__(self):
+ return next(self._iterable)
+
+ def __getitem__(self, key):
+ if isinstance(key, slice):
+ return islice_extended(_islice_helper(self._iterable, key))
+
+ raise TypeError('islice_extended.__getitem__ argument must be a slice')
+
+
+def _islice_helper(it, s):
+ start = s.start
+ stop = s.stop
+ if s.step == 0:
+ raise ValueError('step argument must be a non-zero integer or None.')
+ step = s.step or 1
+
+ if step > 0:
+ start = 0 if (start is None) else start
+
+ if start < 0:
+ # Consume all but the last -start items
+ cache = deque(enumerate(it, 1), maxlen=-start)
+ len_iter = cache[-1][0] if cache else 0
+
+ # Adjust start to be positive
+ i = max(len_iter + start, 0)
+
+ # Adjust stop to be positive
+ if stop is None:
+ j = len_iter
+ elif stop >= 0:
+ j = min(stop, len_iter)
+ else:
+ j = max(len_iter + stop, 0)
+
+ # Slice the cache
+ n = j - i
+ if n <= 0:
+ return
+
+ for index, item in islice(cache, 0, n, step):
+ yield item
+ elif (stop is not None) and (stop < 0):
+ # Advance to the start position
+ next(islice(it, start, start), None)
+
+ # When stop is negative, we have to carry -stop items while
+ # iterating
+ cache = deque(islice(it, -stop), maxlen=-stop)
+
+ for index, item in enumerate(it):
+ cached_item = cache.popleft()
+ if index % step == 0:
+ yield cached_item
+ cache.append(item)
+ else:
+ # When both start and stop are positive we have the normal case
+ yield from islice(it, start, stop, step)
+ else:
+ start = -1 if (start is None) else start
+
+ if (stop is not None) and (stop < 0):
+ # Consume all but the last items
+ n = -stop - 1
+ cache = deque(enumerate(it, 1), maxlen=n)
+ len_iter = cache[-1][0] if cache else 0
+
+ # If start and stop are both negative they are comparable and
+ # we can just slice. Otherwise we can adjust start to be negative
+ # and then slice.
+ if start < 0:
+ i, j = start, stop
+ else:
+ i, j = min(start - len_iter, -1), None
+
+ for index, item in list(cache)[i:j:step]:
+ yield item
+ else:
+ # Advance to the stop position
+ if stop is not None:
+ m = stop + 1
+ next(islice(it, m, m), None)
+
+ # stop is positive, so if start is negative they are not comparable
+ # and we need the rest of the items.
+ if start < 0:
+ i = start
+ n = None
+ # stop is None and start is positive, so we just need items up to
+ # the start index.
+ elif stop is None:
+ i = None
+ n = start + 1
+ # Both stop and start are positive, so they are comparable.
+ else:
+ i = None
+ n = start - stop
+ if n <= 0:
+ return
+
+ cache = list(islice(it, n))
+
+ yield from cache[i::step]
+
+
+def always_reversible(iterable):
+ """An extension of :func:`reversed` that supports all iterables, not
+ just those which implement the ``Reversible`` or ``Sequence`` protocols.
+
+ >>> print(*always_reversible(x for x in range(3)))
+ 2 1 0
+
+ If the iterable is already reversible, this function returns the
+ result of :func:`reversed()`. If the iterable is not reversible,
+ this function will cache the remaining items in the iterable and
+ yield them in reverse order, which may require significant storage.
+ """
+ try:
+ return reversed(iterable)
+ except TypeError:
+ return reversed(list(iterable))
+
+
+def consecutive_groups(iterable, ordering=lambda x: x):
+ """Yield groups of consecutive items using :func:`itertools.groupby`.
+ The *ordering* function determines whether two items are adjacent by
+ returning their position.
+
+ By default, the ordering function is the identity function. This is
+ suitable for finding runs of numbers:
+
+ >>> iterable = [1, 10, 11, 12, 20, 30, 31, 32, 33, 40]
+ >>> for group in consecutive_groups(iterable):
+ ... print(list(group))
+ [1]
+ [10, 11, 12]
+ [20]
+ [30, 31, 32, 33]
+ [40]
+
+ For finding runs of adjacent letters, try using the :meth:`index` method
+ of a string of letters:
+
+ >>> from string import ascii_lowercase
+ >>> iterable = 'abcdfgilmnop'
+ >>> ordering = ascii_lowercase.index
+ >>> for group in consecutive_groups(iterable, ordering):
+ ... print(list(group))
+ ['a', 'b', 'c', 'd']
+ ['f', 'g']
+ ['i']
+ ['l', 'm', 'n', 'o', 'p']
+
+ Each group of consecutive items is an iterator that shares it source with
+ *iterable*. When an an output group is advanced, the previous group is
+ no longer available unless its elements are copied (e.g., into a ``list``).
+
+ >>> iterable = [1, 2, 11, 12, 21, 22]
+ >>> saved_groups = []
+ >>> for group in consecutive_groups(iterable):
+ ... saved_groups.append(list(group)) # Copy group elements
+ >>> saved_groups
+ [[1, 2], [11, 12], [21, 22]]
+
+ """
+ for k, g in groupby(
+ enumerate(iterable), key=lambda x: x[0] - ordering(x[1])
+ ):
+ yield map(itemgetter(1), g)
+
+
+def difference(iterable, func=sub, *, initial=None):
+ """This function is the inverse of :func:`itertools.accumulate`. By default
+ it will compute the first difference of *iterable* using
+ :func:`operator.sub`:
+
+ >>> from itertools import accumulate
+ >>> iterable = accumulate([0, 1, 2, 3, 4]) # produces 0, 1, 3, 6, 10
+ >>> list(difference(iterable))
+ [0, 1, 2, 3, 4]
+
+ *func* defaults to :func:`operator.sub`, but other functions can be
+ specified. They will be applied as follows::
+
+ A, B, C, D, ... --> A, func(B, A), func(C, B), func(D, C), ...
+
+ For example, to do progressive division:
+
+ >>> iterable = [1, 2, 6, 24, 120]
+ >>> func = lambda x, y: x // y
+ >>> list(difference(iterable, func))
+ [1, 2, 3, 4, 5]
+
+ If the *initial* keyword is set, the first element will be skipped when
+ computing successive differences.
+
+ >>> it = [10, 11, 13, 16] # from accumulate([1, 2, 3], initial=10)
+ >>> list(difference(it, initial=10))
+ [1, 2, 3]
+
+ """
+ a, b = tee(iterable)
+ try:
+ first = [next(b)]
+ except StopIteration:
+ return iter([])
+
+ if initial is not None:
+ first = []
+
+ return chain(first, starmap(func, zip(b, a)))
+
+
+class SequenceView(Sequence):
+ """Return a read-only view of the sequence object *target*.
+
+ :class:`SequenceView` objects are analogous to Python's built-in
+ "dictionary view" types. They provide a dynamic view of a sequence's items,
+ meaning that when the sequence updates, so does the view.
+
+ >>> seq = ['0', '1', '2']
+ >>> view = SequenceView(seq)
+ >>> view
+ SequenceView(['0', '1', '2'])
+ >>> seq.append('3')
+ >>> view
+ SequenceView(['0', '1', '2', '3'])
+
+ Sequence views support indexing, slicing, and length queries. They act
+ like the underlying sequence, except they don't allow assignment:
+
+ >>> view[1]
+ '1'
+ >>> view[1:-1]
+ ['1', '2']
+ >>> len(view)
+ 4
+
+ Sequence views are useful as an alternative to copying, as they don't
+ require (much) extra storage.
+
+ """
+
+ def __init__(self, target):
+ if not isinstance(target, Sequence):
+ raise TypeError
+ self._target = target
+
+ def __getitem__(self, index):
+ return self._target[index]
+
+ def __len__(self):
+ return len(self._target)
+
+ def __repr__(self):
+ return '{}({})'.format(self.__class__.__name__, repr(self._target))
+
+
+class seekable:
+ """Wrap an iterator to allow for seeking backward and forward. This
+ progressively caches the items in the source iterable so they can be
+ re-visited.
+
+ Call :meth:`seek` with an index to seek to that position in the source
+ iterable.
+
+ To "reset" an iterator, seek to ``0``:
+
+ >>> from itertools import count
+ >>> it = seekable((str(n) for n in count()))
+ >>> next(it), next(it), next(it)
+ ('0', '1', '2')
+ >>> it.seek(0)
+ >>> next(it), next(it), next(it)
+ ('0', '1', '2')
+ >>> next(it)
+ '3'
+
+ You can also seek forward:
+
+ >>> it = seekable((str(n) for n in range(20)))
+ >>> it.seek(10)
+ >>> next(it)
+ '10'
+ >>> it.seek(20) # Seeking past the end of the source isn't a problem
+ >>> list(it)
+ []
+ >>> it.seek(0) # Resetting works even after hitting the end
+ >>> next(it), next(it), next(it)
+ ('0', '1', '2')
+
+ Call :meth:`peek` to look ahead one item without advancing the iterator:
+
+ >>> it = seekable('1234')
+ >>> it.peek()
+ '1'
+ >>> list(it)
+ ['1', '2', '3', '4']
+ >>> it.peek(default='empty')
+ 'empty'
+
+ Before the iterator is at its end, calling :func:`bool` on it will return
+ ``True``. After it will return ``False``:
+
+ >>> it = seekable('5678')
+ >>> bool(it)
+ True
+ >>> list(it)
+ ['5', '6', '7', '8']
+ >>> bool(it)
+ False
+
+ You may view the contents of the cache with the :meth:`elements` method.
+ That returns a :class:`SequenceView`, a view that updates automatically:
+
+ >>> it = seekable((str(n) for n in range(10)))
+ >>> next(it), next(it), next(it)
+ ('0', '1', '2')
+ >>> elements = it.elements()
+ >>> elements
+ SequenceView(['0', '1', '2'])
+ >>> next(it)
+ '3'
+ >>> elements
+ SequenceView(['0', '1', '2', '3'])
+
+ By default, the cache grows as the source iterable progresses, so beware of
+ wrapping very large or infinite iterables. Supply *maxlen* to limit the
+ size of the cache (this of course limits how far back you can seek).
+
+ >>> from itertools import count
+ >>> it = seekable((str(n) for n in count()), maxlen=2)
+ >>> next(it), next(it), next(it), next(it)
+ ('0', '1', '2', '3')
+ >>> list(it.elements())
+ ['2', '3']
+ >>> it.seek(0)
+ >>> next(it), next(it), next(it), next(it)
+ ('2', '3', '4', '5')
+ >>> next(it)
+ '6'
+
+ """
+
+ def __init__(self, iterable, maxlen=None):
+ self._source = iter(iterable)
+ if maxlen is None:
+ self._cache = []
+ else:
+ self._cache = deque([], maxlen)
+ self._index = None
+
+ def __iter__(self):
+ return self
+
+ def __next__(self):
+ if self._index is not None:
+ try:
+ item = self._cache[self._index]
+ except IndexError:
+ self._index = None
+ else:
+ self._index += 1
+ return item
+
+ item = next(self._source)
+ self._cache.append(item)
+ return item
+
+ def __bool__(self):
+ try:
+ self.peek()
+ except StopIteration:
+ return False
+ return True
+
+ def peek(self, default=_marker):
+ try:
+ peeked = next(self)
+ except StopIteration:
+ if default is _marker:
+ raise
+ return default
+ if self._index is None:
+ self._index = len(self._cache)
+ self._index -= 1
+ return peeked
+
+ def elements(self):
+ return SequenceView(self._cache)
+
+ def seek(self, index):
+ self._index = index
+ remainder = index - len(self._cache)
+ if remainder > 0:
+ consume(self, remainder)
+
+
+class run_length:
+ """
+ :func:`run_length.encode` compresses an iterable with run-length encoding.
+ It yields groups of repeated items with the count of how many times they
+ were repeated:
+
+ >>> uncompressed = 'abbcccdddd'
+ >>> list(run_length.encode(uncompressed))
+ [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
+
+ :func:`run_length.decode` decompresses an iterable that was previously
+ compressed with run-length encoding. It yields the items of the
+ decompressed iterable:
+
+ >>> compressed = [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
+ >>> list(run_length.decode(compressed))
+ ['a', 'b', 'b', 'c', 'c', 'c', 'd', 'd', 'd', 'd']
+
+ """
+
+ @staticmethod
+ def encode(iterable):
+ return ((k, ilen(g)) for k, g in groupby(iterable))
+
+ @staticmethod
+ def decode(iterable):
+ return chain.from_iterable(repeat(k, n) for k, n in iterable)
+
+
+def exactly_n(iterable, n, predicate=bool):
+ """Return ``True`` if exactly ``n`` items in the iterable are ``True``
+ according to the *predicate* function.
+
+ >>> exactly_n([True, True, False], 2)
+ True
+ >>> exactly_n([True, True, False], 1)
+ False
+ >>> exactly_n([0, 1, 2, 3, 4, 5], 3, lambda x: x < 3)
+ True
+
+ The iterable will be advanced until ``n + 1`` truthy items are encountered,
+ so avoid calling it on infinite iterables.
+
+ """
+ return len(take(n + 1, filter(predicate, iterable))) == n
+
+
+def circular_shifts(iterable):
+ """Return a list of circular shifts of *iterable*.
+
+ >>> circular_shifts(range(4))
+ [(0, 1, 2, 3), (1, 2, 3, 0), (2, 3, 0, 1), (3, 0, 1, 2)]
+ """
+ lst = list(iterable)
+ return take(len(lst), windowed(cycle(lst), len(lst)))
+
+
+def make_decorator(wrapping_func, result_index=0):
+ """Return a decorator version of *wrapping_func*, which is a function that
+ modifies an iterable. *result_index* is the position in that function's
+ signature where the iterable goes.
+
+ This lets you use itertools on the "production end," i.e. at function
+ definition. This can augment what the function returns without changing the
+ function's code.
+
+ For example, to produce a decorator version of :func:`chunked`:
+
+ >>> from more_itertools import chunked
+ >>> chunker = make_decorator(chunked, result_index=0)
+ >>> @chunker(3)
+ ... def iter_range(n):
+ ... return iter(range(n))
+ ...
+ >>> list(iter_range(9))
+ [[0, 1, 2], [3, 4, 5], [6, 7, 8]]
+
+ To only allow truthy items to be returned:
+
+ >>> truth_serum = make_decorator(filter, result_index=1)
+ >>> @truth_serum(bool)
+ ... def boolean_test():
+ ... return [0, 1, '', ' ', False, True]
+ ...
+ >>> list(boolean_test())
+ [1, ' ', True]
+
+ The :func:`peekable` and :func:`seekable` wrappers make for practical
+ decorators:
+
+ >>> from more_itertools import peekable
+ >>> peekable_function = make_decorator(peekable)
+ >>> @peekable_function()
+ ... def str_range(*args):
+ ... return (str(x) for x in range(*args))
+ ...
+ >>> it = str_range(1, 20, 2)
+ >>> next(it), next(it), next(it)
+ ('1', '3', '5')
+ >>> it.peek()
+ '7'
+ >>> next(it)
+ '7'
+
+ """
+ # See https://sites.google.com/site/bbayles/index/decorator_factory for
+ # notes on how this works.
+ def decorator(*wrapping_args, **wrapping_kwargs):
+ def outer_wrapper(f):
+ def inner_wrapper(*args, **kwargs):
+ result = f(*args, **kwargs)
+ wrapping_args_ = list(wrapping_args)
+ wrapping_args_.insert(result_index, result)
+ return wrapping_func(*wrapping_args_, **wrapping_kwargs)
+
+ return inner_wrapper
+
+ return outer_wrapper
+
+ return decorator
+
+
+def map_reduce(iterable, keyfunc, valuefunc=None, reducefunc=None):
+ """Return a dictionary that maps the items in *iterable* to categories
+ defined by *keyfunc*, transforms them with *valuefunc*, and
+ then summarizes them by category with *reducefunc*.
+
+ *valuefunc* defaults to the identity function if it is unspecified.
+ If *reducefunc* is unspecified, no summarization takes place:
+
+ >>> keyfunc = lambda x: x.upper()
+ >>> result = map_reduce('abbccc', keyfunc)
+ >>> sorted(result.items())
+ [('A', ['a']), ('B', ['b', 'b']), ('C', ['c', 'c', 'c'])]
+
+ Specifying *valuefunc* transforms the categorized items:
+
+ >>> keyfunc = lambda x: x.upper()
+ >>> valuefunc = lambda x: 1
+ >>> result = map_reduce('abbccc', keyfunc, valuefunc)
+ >>> sorted(result.items())
+ [('A', [1]), ('B', [1, 1]), ('C', [1, 1, 1])]
+
+ Specifying *reducefunc* summarizes the categorized items:
+
+ >>> keyfunc = lambda x: x.upper()
+ >>> valuefunc = lambda x: 1
+ >>> reducefunc = sum
+ >>> result = map_reduce('abbccc', keyfunc, valuefunc, reducefunc)
+ >>> sorted(result.items())
+ [('A', 1), ('B', 2), ('C', 3)]
+
+ You may want to filter the input iterable before applying the map/reduce
+ procedure:
+
+ >>> all_items = range(30)
+ >>> items = [x for x in all_items if 10 <= x <= 20] # Filter
+ >>> keyfunc = lambda x: x % 2 # Evens map to 0; odds to 1
+ >>> categories = map_reduce(items, keyfunc=keyfunc)
+ >>> sorted(categories.items())
+ [(0, [10, 12, 14, 16, 18, 20]), (1, [11, 13, 15, 17, 19])]
+ >>> summaries = map_reduce(items, keyfunc=keyfunc, reducefunc=sum)
+ >>> sorted(summaries.items())
+ [(0, 90), (1, 75)]
+
+ Note that all items in the iterable are gathered into a list before the
+ summarization step, which may require significant storage.
+
+ The returned object is a :obj:`collections.defaultdict` with the
+ ``default_factory`` set to ``None``, such that it behaves like a normal
+ dictionary.
+
+ """
+ valuefunc = (lambda x: x) if (valuefunc is None) else valuefunc
+
+ ret = defaultdict(list)
+ for item in iterable:
+ key = keyfunc(item)
+ value = valuefunc(item)
+ ret[key].append(value)
+
+ if reducefunc is not None:
+ for key, value_list in ret.items():
+ ret[key] = reducefunc(value_list)
+
+ ret.default_factory = None
+ return ret
+
+
+def rlocate(iterable, pred=bool, window_size=None):
+ """Yield the index of each item in *iterable* for which *pred* returns
+ ``True``, starting from the right and moving left.
+
+ *pred* defaults to :func:`bool`, which will select truthy items:
+
+ >>> list(rlocate([0, 1, 1, 0, 1, 0, 0])) # Truthy at 1, 2, and 4
+ [4, 2, 1]
+
+ Set *pred* to a custom function to, e.g., find the indexes for a particular
+ item:
+
+ >>> iterable = iter('abcb')
+ >>> pred = lambda x: x == 'b'
+ >>> list(rlocate(iterable, pred))
+ [3, 1]
+
+ If *window_size* is given, then the *pred* function will be called with
+ that many items. This enables searching for sub-sequences:
+
+ >>> iterable = [0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]
+ >>> pred = lambda *args: args == (1, 2, 3)
+ >>> list(rlocate(iterable, pred=pred, window_size=3))
+ [9, 5, 1]
+
+ Beware, this function won't return anything for infinite iterables.
+ If *iterable* is reversible, ``rlocate`` will reverse it and search from
+ the right. Otherwise, it will search from the left and return the results
+ in reverse order.
+
+ See :func:`locate` to for other example applications.
+
+ """
+ if window_size is None:
+ try:
+ len_iter = len(iterable)
+ return (len_iter - i - 1 for i in locate(reversed(iterable), pred))
+ except TypeError:
+ pass
+
+ return reversed(list(locate(iterable, pred, window_size)))
+
+
+def replace(iterable, pred, substitutes, count=None, window_size=1):
+ """Yield the items from *iterable*, replacing the items for which *pred*
+ returns ``True`` with the items from the iterable *substitutes*.
+
+ >>> iterable = [1, 1, 0, 1, 1, 0, 1, 1]
+ >>> pred = lambda x: x == 0
+ >>> substitutes = (2, 3)
+ >>> list(replace(iterable, pred, substitutes))
+ [1, 1, 2, 3, 1, 1, 2, 3, 1, 1]
+
+ If *count* is given, the number of replacements will be limited:
+
+ >>> iterable = [1, 1, 0, 1, 1, 0, 1, 1, 0]
+ >>> pred = lambda x: x == 0
+ >>> substitutes = [None]
+ >>> list(replace(iterable, pred, substitutes, count=2))
+ [1, 1, None, 1, 1, None, 1, 1, 0]
+
+ Use *window_size* to control the number of items passed as arguments to
+ *pred*. This allows for locating and replacing subsequences.
+
+ >>> iterable = [0, 1, 2, 5, 0, 1, 2, 5]
+ >>> window_size = 3
+ >>> pred = lambda *args: args == (0, 1, 2) # 3 items passed to pred
+ >>> substitutes = [3, 4] # Splice in these items
+ >>> list(replace(iterable, pred, substitutes, window_size=window_size))
+ [3, 4, 5, 3, 4, 5]
+
+ """
+ if window_size < 1:
+ raise ValueError('window_size must be at least 1')
+
+ # Save the substitutes iterable, since it's used more than once
+ substitutes = tuple(substitutes)
+
+ # Add padding such that the number of windows matches the length of the
+ # iterable
+ it = chain(iterable, [_marker] * (window_size - 1))
+ windows = windowed(it, window_size)
+
+ n = 0
+ for w in windows:
+ # If the current window matches our predicate (and we haven't hit
+ # our maximum number of replacements), splice in the substitutes
+ # and then consume the following windows that overlap with this one.
+ # For example, if the iterable is (0, 1, 2, 3, 4...)
+ # and the window size is 2, we have (0, 1), (1, 2), (2, 3)...
+ # If the predicate matches on (0, 1), we need to zap (0, 1) and (1, 2)
+ if pred(*w):
+ if (count is None) or (n < count):
+ n += 1
+ yield from substitutes
+ consume(windows, window_size - 1)
+ continue
+
+ # If there was no match (or we've reached the replacement limit),
+ # yield the first item from the window.
+ if w and (w[0] is not _marker):
+ yield w[0]
+
+
+def partitions(iterable):
+ """Yield all possible order-preserving partitions of *iterable*.
+
+ >>> iterable = 'abc'
+ >>> for part in partitions(iterable):
+ ... print([''.join(p) for p in part])
+ ['abc']
+ ['a', 'bc']
+ ['ab', 'c']
+ ['a', 'b', 'c']
+
+ This is unrelated to :func:`partition`.
+
+ """
+ sequence = list(iterable)
+ n = len(sequence)
+ for i in powerset(range(1, n)):
+ yield [sequence[i:j] for i, j in zip((0,) + i, i + (n,))]
+
+
+def set_partitions(iterable, k=None):
+ """
+ Yield the set partitions of *iterable* into *k* parts. Set partitions are
+ not order-preserving.
+
+ >>> iterable = 'abc'
+ >>> for part in set_partitions(iterable, 2):
+ ... print([''.join(p) for p in part])
+ ['a', 'bc']
+ ['ab', 'c']
+ ['b', 'ac']
+
+
+ If *k* is not given, every set partition is generated.
+
+ >>> iterable = 'abc'
+ >>> for part in set_partitions(iterable):
+ ... print([''.join(p) for p in part])
+ ['abc']
+ ['a', 'bc']
+ ['ab', 'c']
+ ['b', 'ac']
+ ['a', 'b', 'c']
+
+ """
+ L = list(iterable)
+ n = len(L)
+ if k is not None:
+ if k < 1:
+ raise ValueError(
+ "Can't partition in a negative or zero number of groups"
+ )
+ elif k > n:
+ return
+
+ def set_partitions_helper(L, k):
+ n = len(L)
+ if k == 1:
+ yield [L]
+ elif n == k:
+ yield [[s] for s in L]
+ else:
+ e, *M = L
+ for p in set_partitions_helper(M, k - 1):
+ yield [[e], *p]
+ for p in set_partitions_helper(M, k):
+ for i in range(len(p)):
+ yield p[:i] + [[e] + p[i]] + p[i + 1 :]
+
+ if k is None:
+ for k in range(1, n + 1):
+ yield from set_partitions_helper(L, k)
+ else:
+ yield from set_partitions_helper(L, k)
+
+
+class time_limited:
+ """
+ Yield items from *iterable* until *limit_seconds* have passed.
+ If the time limit expires before all items have been yielded, the
+ ``timed_out`` parameter will be set to ``True``.
+
+ >>> from time import sleep
+ >>> def generator():
+ ... yield 1
+ ... yield 2
+ ... sleep(0.2)
+ ... yield 3
+ >>> iterable = time_limited(0.1, generator())
+ >>> list(iterable)
+ [1, 2]
+ >>> iterable.timed_out
+ True
+
+ Note that the time is checked before each item is yielded, and iteration
+ stops if the time elapsed is greater than *limit_seconds*. If your time
+ limit is 1 second, but it takes 2 seconds to generate the first item from
+ the iterable, the function will run for 2 seconds and not yield anything.
+
+ """
+
+ def __init__(self, limit_seconds, iterable):
+ if limit_seconds < 0:
+ raise ValueError('limit_seconds must be positive')
+ self.limit_seconds = limit_seconds
+ self._iterable = iter(iterable)
+ self._start_time = monotonic()
+ self.timed_out = False
+
+ def __iter__(self):
+ return self
+
+ def __next__(self):
+ item = next(self._iterable)
+ if monotonic() - self._start_time > self.limit_seconds:
+ self.timed_out = True
+ raise StopIteration
+
+ return item
+
+
+def only(iterable, default=None, too_long=None):
+ """If *iterable* has only one item, return it.
+ If it has zero items, return *default*.
+ If it has more than one item, raise the exception given by *too_long*,
+ which is ``ValueError`` by default.
+
+ >>> only([], default='missing')
+ 'missing'
+ >>> only([1])
+ 1
+ >>> only([1, 2]) # doctest: +IGNORE_EXCEPTION_DETAIL
+ Traceback (most recent call last):
+ ...
+ ValueError: Expected exactly one item in iterable, but got 1, 2,
+ and perhaps more.'
+ >>> only([1, 2], too_long=TypeError) # doctest: +IGNORE_EXCEPTION_DETAIL
+ Traceback (most recent call last):
+ ...
+ TypeError
+
+ Note that :func:`only` attempts to advance *iterable* twice to ensure there
+ is only one item. See :func:`spy` or :func:`peekable` to check
+ iterable contents less destructively.
+ """
+ it = iter(iterable)
+ first_value = next(it, default)
+
+ try:
+ second_value = next(it)
+ except StopIteration:
+ pass
+ else:
+ msg = (
+ 'Expected exactly one item in iterable, but got {!r}, {!r}, '
+ 'and perhaps more.'.format(first_value, second_value)
+ )
+ raise too_long or ValueError(msg)
+
+ return first_value
+
+
+def ichunked(iterable, n):
+ """Break *iterable* into sub-iterables with *n* elements each.
+ :func:`ichunked` is like :func:`chunked`, but it yields iterables
+ instead of lists.
+
+ If the sub-iterables are read in order, the elements of *iterable*
+ won't be stored in memory.
+ If they are read out of order, :func:`itertools.tee` is used to cache
+ elements as necessary.
+
+ >>> from itertools import count
+ >>> all_chunks = ichunked(count(), 4)
+ >>> c_1, c_2, c_3 = next(all_chunks), next(all_chunks), next(all_chunks)
+ >>> list(c_2) # c_1's elements have been cached; c_3's haven't been
+ [4, 5, 6, 7]
+ >>> list(c_1)
+ [0, 1, 2, 3]
+ >>> list(c_3)
+ [8, 9, 10, 11]
+
+ """
+ source = iter(iterable)
+
+ while True:
+ # Check to see whether we're at the end of the source iterable
+ item = next(source, _marker)
+ if item is _marker:
+ return
+
+ # Clone the source and yield an n-length slice
+ source, it = tee(chain([item], source))
+ yield islice(it, n)
+
+ # Advance the source iterable
+ consume(source, n)
+
+
+def distinct_combinations(iterable, r):
+ """Yield the distinct combinations of *r* items taken from *iterable*.
+
+ >>> list(distinct_combinations([0, 0, 1], 2))
+ [(0, 0), (0, 1)]
+
+ Equivalent to ``set(combinations(iterable))``, except duplicates are not
+ generated and thrown away. For larger input sequences this is much more
+ efficient.
+
+ """
+ if r < 0:
+ raise ValueError('r must be non-negative')
+ elif r == 0:
+ yield ()
+ return
+ pool = tuple(iterable)
+ generators = [unique_everseen(enumerate(pool), key=itemgetter(1))]
+ current_combo = [None] * r
+ level = 0
+ while generators:
+ try:
+ cur_idx, p = next(generators[-1])
+ except StopIteration:
+ generators.pop()
+ level -= 1
+ continue
+ current_combo[level] = p
+ if level + 1 == r:
+ yield tuple(current_combo)
+ else:
+ generators.append(
+ unique_everseen(
+ enumerate(pool[cur_idx + 1 :], cur_idx + 1),
+ key=itemgetter(1),
+ )
+ )
+ level += 1
+
+
+def filter_except(validator, iterable, *exceptions):
+ """Yield the items from *iterable* for which the *validator* function does
+ not raise one of the specified *exceptions*.
+
+ *validator* is called for each item in *iterable*.
+ It should be a function that accepts one argument and raises an exception
+ if that item is not valid.
+
+ >>> iterable = ['1', '2', 'three', '4', None]
+ >>> list(filter_except(int, iterable, ValueError, TypeError))
+ ['1', '2', '4']
+
+ If an exception other than one given by *exceptions* is raised by
+ *validator*, it is raised like normal.
+ """
+ for item in iterable:
+ try:
+ validator(item)
+ except exceptions:
+ pass
+ else:
+ yield item
+
+
+def map_except(function, iterable, *exceptions):
+ """Transform each item from *iterable* with *function* and yield the
+ result, unless *function* raises one of the specified *exceptions*.
+
+ *function* is called to transform each item in *iterable*.
+ It should be a accept one argument.
+
+ >>> iterable = ['1', '2', 'three', '4', None]
+ >>> list(map_except(int, iterable, ValueError, TypeError))
+ [1, 2, 4]
+
+ If an exception other than one given by *exceptions* is raised by
+ *function*, it is raised like normal.
+ """
+ for item in iterable:
+ try:
+ yield function(item)
+ except exceptions:
+ pass
+
+
+def _sample_unweighted(iterable, k):
+ # Implementation of "Algorithm L" from the 1994 paper by Kim-Hung Li:
+ # "Reservoir-Sampling Algorithms of Time Complexity O(n(1+log(N/n)))".
+
+ # Fill up the reservoir (collection of samples) with the first `k` samples
+ reservoir = take(k, iterable)
+
+ # Generate random number that's the largest in a sample of k U(0,1) numbers
+ # Largest order statistic: https://en.wikipedia.org/wiki/Order_statistic
+ W = exp(log(random()) / k)
+
+ # The number of elements to skip before changing the reservoir is a random
+ # number with a geometric distribution. Sample it using random() and logs.
+ next_index = k + floor(log(random()) / log(1 - W))
+
+ for index, element in enumerate(iterable, k):
+
+ if index == next_index:
+ reservoir[randrange(k)] = element
+ # The new W is the largest in a sample of k U(0, `old_W`) numbers
+ W *= exp(log(random()) / k)
+ next_index += floor(log(random()) / log(1 - W)) + 1
+
+ return reservoir
+
+
+def _sample_weighted(iterable, k, weights):
+ # Implementation of "A-ExpJ" from the 2006 paper by Efraimidis et al. :
+ # "Weighted random sampling with a reservoir".
+
+ # Log-transform for numerical stability for weights that are small/large
+ weight_keys = (log(random()) / weight for weight in weights)
+
+ # Fill up the reservoir (collection of samples) with the first `k`
+ # weight-keys and elements, then heapify the list.
+ reservoir = take(k, zip(weight_keys, iterable))
+ heapify(reservoir)
+
+ # The number of jumps before changing the reservoir is a random variable
+ # with an exponential distribution. Sample it using random() and logs.
+ smallest_weight_key, _ = reservoir[0]
+ weights_to_skip = log(random()) / smallest_weight_key
+
+ for weight, element in zip(weights, iterable):
+ if weight >= weights_to_skip:
+ # The notation here is consistent with the paper, but we store
+ # the weight-keys in log-space for better numerical stability.
+ smallest_weight_key, _ = reservoir[0]
+ t_w = exp(weight * smallest_weight_key)
+ r_2 = uniform(t_w, 1) # generate U(t_w, 1)
+ weight_key = log(r_2) / weight
+ heapreplace(reservoir, (weight_key, element))
+ smallest_weight_key, _ = reservoir[0]
+ weights_to_skip = log(random()) / smallest_weight_key
+ else:
+ weights_to_skip -= weight
+
+ # Equivalent to [element for weight_key, element in sorted(reservoir)]
+ return [heappop(reservoir)[1] for _ in range(k)]
+
+
+def sample(iterable, k, weights=None):
+ """Return a *k*-length list of elements chosen (without replacement)
+ from the *iterable*. Like :func:`random.sample`, but works on iterables
+ of unknown length.
+
+ >>> iterable = range(100)
+ >>> sample(iterable, 5) # doctest: +SKIP
+ [81, 60, 96, 16, 4]
+
+ An iterable with *weights* may also be given:
+
+ >>> iterable = range(100)
+ >>> weights = (i * i + 1 for i in range(100))
+ >>> sampled = sample(iterable, 5, weights=weights) # doctest: +SKIP
+ [79, 67, 74, 66, 78]
+
+ The algorithm can also be used to generate weighted random permutations.
+ The relative weight of each item determines the probability that it
+ appears late in the permutation.
+
+ >>> data = "abcdefgh"
+ >>> weights = range(1, len(data) + 1)
+ >>> sample(data, k=len(data), weights=weights) # doctest: +SKIP
+ ['c', 'a', 'b', 'e', 'g', 'd', 'h', 'f']
+ """
+ if k == 0:
+ return []
+
+ iterable = iter(iterable)
+ if weights is None:
+ return _sample_unweighted(iterable, k)
+ else:
+ weights = iter(weights)
+ return _sample_weighted(iterable, k, weights)
+
+
+def is_sorted(iterable, key=None, reverse=False):
+ """Returns ``True`` if the items of iterable are in sorted order, and
+ ``False`` otherwise. *key* and *reverse* have the same meaning that they do
+ in the built-in :func:`sorted` function.
+
+ >>> is_sorted(['1', '2', '3', '4', '5'], key=int)
+ True
+ >>> is_sorted([5, 4, 3, 1, 2], reverse=True)
+ False
+
+ The function returns ``False`` after encountering the first out-of-order
+ item. If there are no out-of-order items, the iterable is exhausted.
+ """
+
+ compare = lt if reverse else gt
+ it = iterable if (key is None) else map(key, iterable)
+ return not any(starmap(compare, pairwise(it)))
+
+
+class AbortThread(BaseException):
+ pass
+
+
+class callback_iter:
+ """Convert a function that uses callbacks to an iterator.
+
+ Let *func* be a function that takes a `callback` keyword argument.
+ For example:
+
+ >>> def func(callback=None):
+ ... for i, c in [(1, 'a'), (2, 'b'), (3, 'c')]:
+ ... if callback:
+ ... callback(i, c)
+ ... return 4
+
+
+ Use ``with callback_iter(func)`` to get an iterator over the parameters
+ that are delivered to the callback.
+
+ >>> with callback_iter(func) as it:
+ ... for args, kwargs in it:
+ ... print(args)
+ (1, 'a')
+ (2, 'b')
+ (3, 'c')
+
+ The function will be called in a background thread. The ``done`` property
+ indicates whether it has completed execution.
+
+ >>> it.done
+ True
+
+ If it completes successfully, its return value will be available
+ in the ``result`` property.
+
+ >>> it.result
+ 4
+
+ Notes:
+
+ * If the function uses some keyword argument besides ``callback``, supply
+ *callback_kwd*.
+ * If it finished executing, but raised an exception, accessing the
+ ``result`` property will raise the same exception.
+ * If it hasn't finished executing, accessing the ``result``
+ property from within the ``with`` block will raise ``RuntimeError``.
+ * If it hasn't finished executing, accessing the ``result`` property from
+ outside the ``with`` block will raise a
+ ``more_itertools.AbortThread`` exception.
+ * Provide *wait_seconds* to adjust how frequently the it is polled for
+ output.
+
+ """
+
+ def __init__(self, func, callback_kwd='callback', wait_seconds=0.1):
+ self._func = func
+ self._callback_kwd = callback_kwd
+ self._aborted = False
+ self._future = None
+ self._wait_seconds = wait_seconds
+ self._executor = ThreadPoolExecutor(max_workers=1)
+ self._iterator = self._reader()
+
+ def __enter__(self):
+ return self
+
+ def __exit__(self, exc_type, exc_value, traceback):
+ self._aborted = True
+ self._executor.shutdown()
+
+ def __iter__(self):
+ return self
+
+ def __next__(self):
+ return next(self._iterator)
+
+ @property
+ def done(self):
+ if self._future is None:
+ return False
+ return self._future.done()
+
+ @property
+ def result(self):
+ if not self.done:
+ raise RuntimeError('Function has not yet completed')
+
+ return self._future.result()
+
+ def _reader(self):
+ q = Queue()
+
+ def callback(*args, **kwargs):
+ if self._aborted:
+ raise AbortThread('canceled by user')
+
+ q.put((args, kwargs))
+
+ self._future = self._executor.submit(
+ self._func, **{self._callback_kwd: callback}
+ )
+
+ while True:
+ try:
+ item = q.get(timeout=self._wait_seconds)
+ except Empty:
+ pass
+ else:
+ q.task_done()
+ yield item
+
+ if self._future.done():
+ break
+
+ remaining = []
+ while True:
+ try:
+ item = q.get_nowait()
+ except Empty:
+ break
+ else:
+ q.task_done()
+ remaining.append(item)
+ q.join()
+ yield from remaining
+
+
+def windowed_complete(iterable, n):
+ """
+ Yield ``(beginning, middle, end)`` tuples, where:
+
+ * Each ``middle`` has *n* items from *iterable*
+ * Each ``beginning`` has the items before the ones in ``middle``
+ * Each ``end`` has the items after the ones in ``middle``
+
+ >>> iterable = range(7)
+ >>> n = 3
+ >>> for beginning, middle, end in windowed_complete(iterable, n):
+ ... print(beginning, middle, end)
+ () (0, 1, 2) (3, 4, 5, 6)
+ (0,) (1, 2, 3) (4, 5, 6)
+ (0, 1) (2, 3, 4) (5, 6)
+ (0, 1, 2) (3, 4, 5) (6,)
+ (0, 1, 2, 3) (4, 5, 6) ()
+
+ Note that *n* must be at least 0 and most equal to the length of
+ *iterable*.
+
+ This function will exhaust the iterable and may require significant
+ storage.
+ """
+ if n < 0:
+ raise ValueError('n must be >= 0')
+
+ seq = tuple(iterable)
+ size = len(seq)
+
+ if n > size:
+ raise ValueError('n must be <= len(seq)')
+
+ for i in range(size - n + 1):
+ beginning = seq[:i]
+ middle = seq[i : i + n]
+ end = seq[i + n :]
+ yield beginning, middle, end
+
+
+def all_unique(iterable, key=None):
+ """
+ Returns ``True`` if all the elements of *iterable* are unique (no two
+ elements are equal).
+
+ >>> all_unique('ABCB')
+ False
+
+ If a *key* function is specified, it will be used to make comparisons.
+
+ >>> all_unique('ABCb')
+ True
+ >>> all_unique('ABCb', str.lower)
+ False
+
+ The function returns as soon as the first non-unique element is
+ encountered. Iterables with a mix of hashable and unhashable items can
+ be used, but the function will be slower for unhashable items.
+ """
+ seenset = set()
+ seenset_add = seenset.add
+ seenlist = []
+ seenlist_add = seenlist.append
+ for element in map(key, iterable) if key else iterable:
+ try:
+ if element in seenset:
+ return False
+ seenset_add(element)
+ except TypeError:
+ if element in seenlist:
+ return False
+ seenlist_add(element)
+ return True
+
+
+def nth_product(index, *args):
+ """Equivalent to ``list(product(*args))[index]``.
+
+ The products of *args* can be ordered lexicographically.
+ :func:`nth_product` computes the product at sort position *index* without
+ computing the previous products.
+
+ >>> nth_product(8, range(2), range(2), range(2), range(2))
+ (1, 0, 0, 0)
+
+ ``IndexError`` will be raised if the given *index* is invalid.
+ """
+ pools = list(map(tuple, reversed(args)))
+ ns = list(map(len, pools))
+
+ c = reduce(mul, ns)
+
+ if index < 0:
+ index += c
+
+ if not 0 <= index < c:
+ raise IndexError
+
+ result = []
+ for pool, n in zip(pools, ns):
+ result.append(pool[index % n])
+ index //= n
+
+ return tuple(reversed(result))
+
+
+def nth_permutation(iterable, r, index):
+ """Equivalent to ``list(permutations(iterable, r))[index]```
+
+ The subsequences of *iterable* that are of length *r* where order is
+ important can be ordered lexicographically. :func:`nth_permutation`
+ computes the subsequence at sort position *index* directly, without
+ computing the previous subsequences.
+
+ >>> nth_permutation('ghijk', 2, 5)
+ ('h', 'i')
+
+ ``ValueError`` will be raised If *r* is negative or greater than the length
+ of *iterable*.
+ ``IndexError`` will be raised if the given *index* is invalid.
+ """
+ pool = list(iterable)
+ n = len(pool)
+
+ if r is None or r == n:
+ r, c = n, factorial(n)
+ elif not 0 <= r < n:
+ raise ValueError
+ else:
+ c = factorial(n) // factorial(n - r)
+
+ if index < 0:
+ index += c
+
+ if not 0 <= index < c:
+ raise IndexError
+
+ if c == 0:
+ return tuple()
+
+ result = [0] * r
+ q = index * factorial(n) // c if r < n else index
+ for d in range(1, n + 1):
+ q, i = divmod(q, d)
+ if 0 <= n - d < r:
+ result[n - d] = i
+ if q == 0:
+ break
+
+ return tuple(map(pool.pop, result))
+
+
+def value_chain(*args):
+ """Yield all arguments passed to the function in the same order in which
+ they were passed. If an argument itself is iterable then iterate over its
+ values.
+
+ >>> list(value_chain(1, 2, 3, [4, 5, 6]))
+ [1, 2, 3, 4, 5, 6]
+
+ Binary and text strings are not considered iterable and are emitted
+ as-is:
+
+ >>> list(value_chain('12', '34', ['56', '78']))
+ ['12', '34', '56', '78']
+
+
+ Multiple levels of nesting are not flattened.
+
+ """
+ for value in args:
+ if isinstance(value, (str, bytes)):
+ yield value
+ continue
+ try:
+ yield from value
+ except TypeError:
+ yield value
+
+
+def product_index(element, *args):
+ """Equivalent to ``list(product(*args)).index(element)``
+
+ The products of *args* can be ordered lexicographically.
+ :func:`product_index` computes the first index of *element* without
+ computing the previous products.
+
+ >>> product_index([8, 2], range(10), range(5))
+ 42
+
+ ``ValueError`` will be raised if the given *element* isn't in the product
+ of *args*.
+ """
+ index = 0
+
+ for x, pool in zip_longest(element, args, fillvalue=_marker):
+ if x is _marker or pool is _marker:
+ raise ValueError('element is not a product of args')
+
+ pool = tuple(pool)
+ index = index * len(pool) + pool.index(x)
+
+ return index
+
+
+def combination_index(element, iterable):
+ """Equivalent to ``list(combinations(iterable, r)).index(element)``
+
+ The subsequences of *iterable* that are of length *r* can be ordered
+ lexicographically. :func:`combination_index` computes the index of the
+ first *element*, without computing the previous combinations.
+
+ >>> combination_index('adf', 'abcdefg')
+ 10
+
+ ``ValueError`` will be raised if the given *element* isn't one of the
+ combinations of *iterable*.
+ """
+ element = enumerate(element)
+ k, y = next(element, (None, None))
+ if k is None:
+ return 0
+
+ indexes = []
+ pool = enumerate(iterable)
+ for n, x in pool:
+ if x == y:
+ indexes.append(n)
+ tmp, y = next(element, (None, None))
+ if tmp is None:
+ break
+ else:
+ k = tmp
+ else:
+ raise ValueError('element is not a combination of iterable')
+
+ n, _ = last(pool, default=(n, None))
+
+ # Python versiosn below 3.8 don't have math.comb
+ index = 1
+ for i, j in enumerate(reversed(indexes), start=1):
+ j = n - j
+ if i <= j:
+ index += factorial(j) // (factorial(i) * factorial(j - i))
+
+ return factorial(n + 1) // (factorial(k + 1) * factorial(n - k)) - index
+
+
+def permutation_index(element, iterable):
+ """Equivalent to ``list(permutations(iterable, r)).index(element)```
+
+ The subsequences of *iterable* that are of length *r* where order is
+ important can be ordered lexicographically. :func:`permutation_index`
+ computes the index of the first *element* directly, without computing
+ the previous permutations.
+
+ >>> permutation_index([1, 3, 2], range(5))
+ 19
+
+ ``ValueError`` will be raised if the given *element* isn't one of the
+ permutations of *iterable*.
+ """
+ index = 0
+ pool = list(iterable)
+ for i, x in zip(range(len(pool), -1, -1), element):
+ r = pool.index(x)
+ index = index * i + r
+ del pool[r]
+
+ return index
+
+
+class countable:
+ """Wrap *iterable* and keep a count of how many items have been consumed.
+
+ The ``items_seen`` attribute starts at ``0`` and increments as the iterable
+ is consumed:
+
+ >>> iterable = map(str, range(10))
+ >>> it = countable(iterable)
+ >>> it.items_seen
+ 0
+ >>> next(it), next(it)
+ ('0', '1')
+ >>> list(it)
+ ['2', '3', '4', '5', '6', '7', '8', '9']
+ >>> it.items_seen
+ 10
+ """
+
+ def __init__(self, iterable):
+ self._it = iter(iterable)
+ self.items_seen = 0
+
+ def __iter__(self):
+ return self
+
+ def __next__(self):
+ item = next(self._it)
+ self.items_seen += 1
+
+ return item
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/more_itertools/recipes.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/more_itertools/recipes.py
new file mode 100644
index 00000000..521abd7c
--- /dev/null
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/more_itertools/recipes.py
@@ -0,0 +1,620 @@
+"""Imported from the recipes section of the itertools documentation.
+
+All functions taken from the recipes section of the itertools library docs
+[1]_.
+Some backward-compatible usability improvements have been made.
+
+.. [1] http://docs.python.org/library/itertools.html#recipes
+
+"""
+import warnings
+from collections import deque
+from itertools import (
+ chain,
+ combinations,
+ count,
+ cycle,
+ groupby,
+ islice,
+ repeat,
+ starmap,
+ tee,
+ zip_longest,
+)
+import operator
+from random import randrange, sample, choice
+
+__all__ = [
+ 'all_equal',
+ 'consume',
+ 'convolve',
+ 'dotproduct',
+ 'first_true',
+ 'flatten',
+ 'grouper',
+ 'iter_except',
+ 'ncycles',
+ 'nth',
+ 'nth_combination',
+ 'padnone',
+ 'pad_none',
+ 'pairwise',
+ 'partition',
+ 'powerset',
+ 'prepend',
+ 'quantify',
+ 'random_combination_with_replacement',
+ 'random_combination',
+ 'random_permutation',
+ 'random_product',
+ 'repeatfunc',
+ 'roundrobin',
+ 'tabulate',
+ 'tail',
+ 'take',
+ 'unique_everseen',
+ 'unique_justseen',
+]
+
+
+def take(n, iterable):
+ """Return first *n* items of the iterable as a list.
+
+ >>> take(3, range(10))
+ [0, 1, 2]
+
+ If there are fewer than *n* items in the iterable, all of them are
+ returned.
+
+ >>> take(10, range(3))
+ [0, 1, 2]
+
+ """
+ return list(islice(iterable, n))
+
+
+def tabulate(function, start=0):
+ """Return an iterator over the results of ``func(start)``,
+ ``func(start + 1)``, ``func(start + 2)``...
+
+ *func* should be a function that accepts one integer argument.
+
+ If *start* is not specified it defaults to 0. It will be incremented each
+ time the iterator is advanced.
+
+ >>> square = lambda x: x ** 2
+ >>> iterator = tabulate(square, -3)
+ >>> take(4, iterator)
+ [9, 4, 1, 0]
+
+ """
+ return map(function, count(start))
+
+
+def tail(n, iterable):
+ """Return an iterator over the last *n* items of *iterable*.
+
+ >>> t = tail(3, 'ABCDEFG')
+ >>> list(t)
+ ['E', 'F', 'G']
+
+ """
+ return iter(deque(iterable, maxlen=n))
+
+
+def consume(iterator, n=None):
+ """Advance *iterable* by *n* steps. If *n* is ``None``, consume it
+ entirely.
+
+ Efficiently exhausts an iterator without returning values. Defaults to
+ consuming the whole iterator, but an optional second argument may be
+ provided to limit consumption.
+
+ >>> i = (x for x in range(10))
+ >>> next(i)
+ 0
+ >>> consume(i, 3)
+ >>> next(i)
+ 4
+ >>> consume(i)
+ >>> next(i)
+ Traceback (most recent call last):
+ File "", line 1, in
+ StopIteration
+
+ If the iterator has fewer items remaining than the provided limit, the
+ whole iterator will be consumed.
+
+ >>> i = (x for x in range(3))
+ >>> consume(i, 5)
+ >>> next(i)
+ Traceback (most recent call last):
+ File "", line 1, in
+ StopIteration
+
+ """
+ # Use functions that consume iterators at C speed.
+ if n is None:
+ # feed the entire iterator into a zero-length deque
+ deque(iterator, maxlen=0)
+ else:
+ # advance to the empty slice starting at position n
+ next(islice(iterator, n, n), None)
+
+
+def nth(iterable, n, default=None):
+ """Returns the nth item or a default value.
+
+ >>> l = range(10)
+ >>> nth(l, 3)
+ 3
+ >>> nth(l, 20, "zebra")
+ 'zebra'
+
+ """
+ return next(islice(iterable, n, None), default)
+
+
+def all_equal(iterable):
+ """
+ Returns ``True`` if all the elements are equal to each other.
+
+ >>> all_equal('aaaa')
+ True
+ >>> all_equal('aaab')
+ False
+
+ """
+ g = groupby(iterable)
+ return next(g, True) and not next(g, False)
+
+
+def quantify(iterable, pred=bool):
+ """Return the how many times the predicate is true.
+
+ >>> quantify([True, False, True])
+ 2
+
+ """
+ return sum(map(pred, iterable))
+
+
+def pad_none(iterable):
+ """Returns the sequence of elements and then returns ``None`` indefinitely.
+
+ >>> take(5, pad_none(range(3)))
+ [0, 1, 2, None, None]
+
+ Useful for emulating the behavior of the built-in :func:`map` function.
+
+ See also :func:`padded`.
+
+ """
+ return chain(iterable, repeat(None))
+
+
+padnone = pad_none
+
+
+def ncycles(iterable, n):
+ """Returns the sequence elements *n* times
+
+ >>> list(ncycles(["a", "b"], 3))
+ ['a', 'b', 'a', 'b', 'a', 'b']
+
+ """
+ return chain.from_iterable(repeat(tuple(iterable), n))
+
+
+def dotproduct(vec1, vec2):
+ """Returns the dot product of the two iterables.
+
+ >>> dotproduct([10, 10], [20, 20])
+ 400
+
+ """
+ return sum(map(operator.mul, vec1, vec2))
+
+
+def flatten(listOfLists):
+ """Return an iterator flattening one level of nesting in a list of lists.
+
+ >>> list(flatten([[0, 1], [2, 3]]))
+ [0, 1, 2, 3]
+
+ See also :func:`collapse`, which can flatten multiple levels of nesting.
+
+ """
+ return chain.from_iterable(listOfLists)
+
+
+def repeatfunc(func, times=None, *args):
+ """Call *func* with *args* repeatedly, returning an iterable over the
+ results.
+
+ If *times* is specified, the iterable will terminate after that many
+ repetitions:
+
+ >>> from operator import add
+ >>> times = 4
+ >>> args = 3, 5
+ >>> list(repeatfunc(add, times, *args))
+ [8, 8, 8, 8]
+
+ If *times* is ``None`` the iterable will not terminate:
+
+ >>> from random import randrange
+ >>> times = None
+ >>> args = 1, 11
+ >>> take(6, repeatfunc(randrange, times, *args)) # doctest:+SKIP
+ [2, 4, 8, 1, 8, 4]
+
+ """
+ if times is None:
+ return starmap(func, repeat(args))
+ return starmap(func, repeat(args, times))
+
+
+def _pairwise(iterable):
+ """Returns an iterator of paired items, overlapping, from the original
+
+ >>> take(4, pairwise(count()))
+ [(0, 1), (1, 2), (2, 3), (3, 4)]
+
+ On Python 3.10 and above, this is an alias for :func:`itertools.pairwise`.
+
+ """
+ a, b = tee(iterable)
+ next(b, None)
+ yield from zip(a, b)
+
+
+try:
+ from itertools import pairwise as itertools_pairwise
+except ImportError:
+ pairwise = _pairwise
+else:
+
+ def pairwise(iterable):
+ yield from itertools_pairwise(iterable)
+
+ pairwise.__doc__ = _pairwise.__doc__
+
+
+def grouper(iterable, n, fillvalue=None):
+ """Collect data into fixed-length chunks or blocks.
+
+ >>> list(grouper('ABCDEFG', 3, 'x'))
+ [('A', 'B', 'C'), ('D', 'E', 'F'), ('G', 'x', 'x')]
+
+ """
+ if isinstance(iterable, int):
+ warnings.warn(
+ "grouper expects iterable as first parameter", DeprecationWarning
+ )
+ n, iterable = iterable, n
+ args = [iter(iterable)] * n
+ return zip_longest(fillvalue=fillvalue, *args)
+
+
+def roundrobin(*iterables):
+ """Yields an item from each iterable, alternating between them.
+
+ >>> list(roundrobin('ABC', 'D', 'EF'))
+ ['A', 'D', 'E', 'B', 'F', 'C']
+
+ This function produces the same output as :func:`interleave_longest`, but
+ may perform better for some inputs (in particular when the number of
+ iterables is small).
+
+ """
+ # Recipe credited to George Sakkis
+ pending = len(iterables)
+ nexts = cycle(iter(it).__next__ for it in iterables)
+ while pending:
+ try:
+ for next in nexts:
+ yield next()
+ except StopIteration:
+ pending -= 1
+ nexts = cycle(islice(nexts, pending))
+
+
+def partition(pred, iterable):
+ """
+ Returns a 2-tuple of iterables derived from the input iterable.
+ The first yields the items that have ``pred(item) == False``.
+ The second yields the items that have ``pred(item) == True``.
+
+ >>> is_odd = lambda x: x % 2 != 0
+ >>> iterable = range(10)
+ >>> even_items, odd_items = partition(is_odd, iterable)
+ >>> list(even_items), list(odd_items)
+ ([0, 2, 4, 6, 8], [1, 3, 5, 7, 9])
+
+ If *pred* is None, :func:`bool` is used.
+
+ >>> iterable = [0, 1, False, True, '', ' ']
+ >>> false_items, true_items = partition(None, iterable)
+ >>> list(false_items), list(true_items)
+ ([0, False, ''], [1, True, ' '])
+
+ """
+ if pred is None:
+ pred = bool
+
+ evaluations = ((pred(x), x) for x in iterable)
+ t1, t2 = tee(evaluations)
+ return (
+ (x for (cond, x) in t1 if not cond),
+ (x for (cond, x) in t2 if cond),
+ )
+
+
+def powerset(iterable):
+ """Yields all possible subsets of the iterable.
+
+ >>> list(powerset([1, 2, 3]))
+ [(), (1,), (2,), (3,), (1, 2), (1, 3), (2, 3), (1, 2, 3)]
+
+ :func:`powerset` will operate on iterables that aren't :class:`set`
+ instances, so repeated elements in the input will produce repeated elements
+ in the output. Use :func:`unique_everseen` on the input to avoid generating
+ duplicates:
+
+ >>> seq = [1, 1, 0]
+ >>> list(powerset(seq))
+ [(), (1,), (1,), (0,), (1, 1), (1, 0), (1, 0), (1, 1, 0)]
+ >>> from more_itertools import unique_everseen
+ >>> list(powerset(unique_everseen(seq)))
+ [(), (1,), (0,), (1, 0)]
+
+ """
+ s = list(iterable)
+ return chain.from_iterable(combinations(s, r) for r in range(len(s) + 1))
+
+
+def unique_everseen(iterable, key=None):
+ """
+ Yield unique elements, preserving order.
+
+ >>> list(unique_everseen('AAAABBBCCDAABBB'))
+ ['A', 'B', 'C', 'D']
+ >>> list(unique_everseen('ABBCcAD', str.lower))
+ ['A', 'B', 'C', 'D']
+
+ Sequences with a mix of hashable and unhashable items can be used.
+ The function will be slower (i.e., `O(n^2)`) for unhashable items.
+
+ Remember that ``list`` objects are unhashable - you can use the *key*
+ parameter to transform the list to a tuple (which is hashable) to
+ avoid a slowdown.
+
+ >>> iterable = ([1, 2], [2, 3], [1, 2])
+ >>> list(unique_everseen(iterable)) # Slow
+ [[1, 2], [2, 3]]
+ >>> list(unique_everseen(iterable, key=tuple)) # Faster
+ [[1, 2], [2, 3]]
+
+ Similary, you may want to convert unhashable ``set`` objects with
+ ``key=frozenset``. For ``dict`` objects,
+ ``key=lambda x: frozenset(x.items())`` can be used.
+
+ """
+ seenset = set()
+ seenset_add = seenset.add
+ seenlist = []
+ seenlist_add = seenlist.append
+ use_key = key is not None
+
+ for element in iterable:
+ k = key(element) if use_key else element
+ try:
+ if k not in seenset:
+ seenset_add(k)
+ yield element
+ except TypeError:
+ if k not in seenlist:
+ seenlist_add(k)
+ yield element
+
+
+def unique_justseen(iterable, key=None):
+ """Yields elements in order, ignoring serial duplicates
+
+ >>> list(unique_justseen('AAAABBBCCDAABBB'))
+ ['A', 'B', 'C', 'D', 'A', 'B']
+ >>> list(unique_justseen('ABBCcAD', str.lower))
+ ['A', 'B', 'C', 'A', 'D']
+
+ """
+ return map(next, map(operator.itemgetter(1), groupby(iterable, key)))
+
+
+def iter_except(func, exception, first=None):
+ """Yields results from a function repeatedly until an exception is raised.
+
+ Converts a call-until-exception interface to an iterator interface.
+ Like ``iter(func, sentinel)``, but uses an exception instead of a sentinel
+ to end the loop.
+
+ >>> l = [0, 1, 2]
+ >>> list(iter_except(l.pop, IndexError))
+ [2, 1, 0]
+
+ """
+ try:
+ if first is not None:
+ yield first()
+ while 1:
+ yield func()
+ except exception:
+ pass
+
+
+def first_true(iterable, default=None, pred=None):
+ """
+ Returns the first true value in the iterable.
+
+ If no true value is found, returns *default*
+
+ If *pred* is not None, returns the first item for which
+ ``pred(item) == True`` .
+
+ >>> first_true(range(10))
+ 1
+ >>> first_true(range(10), pred=lambda x: x > 5)
+ 6
+ >>> first_true(range(10), default='missing', pred=lambda x: x > 9)
+ 'missing'
+
+ """
+ return next(filter(pred, iterable), default)
+
+
+def random_product(*args, repeat=1):
+ """Draw an item at random from each of the input iterables.
+
+ >>> random_product('abc', range(4), 'XYZ') # doctest:+SKIP
+ ('c', 3, 'Z')
+
+ If *repeat* is provided as a keyword argument, that many items will be
+ drawn from each iterable.
+
+ >>> random_product('abcd', range(4), repeat=2) # doctest:+SKIP
+ ('a', 2, 'd', 3)
+
+ This equivalent to taking a random selection from
+ ``itertools.product(*args, **kwarg)``.
+
+ """
+ pools = [tuple(pool) for pool in args] * repeat
+ return tuple(choice(pool) for pool in pools)
+
+
+def random_permutation(iterable, r=None):
+ """Return a random *r* length permutation of the elements in *iterable*.
+
+ If *r* is not specified or is ``None``, then *r* defaults to the length of
+ *iterable*.
+
+ >>> random_permutation(range(5)) # doctest:+SKIP
+ (3, 4, 0, 1, 2)
+
+ This equivalent to taking a random selection from
+ ``itertools.permutations(iterable, r)``.
+
+ """
+ pool = tuple(iterable)
+ r = len(pool) if r is None else r
+ return tuple(sample(pool, r))
+
+
+def random_combination(iterable, r):
+ """Return a random *r* length subsequence of the elements in *iterable*.
+
+ >>> random_combination(range(5), 3) # doctest:+SKIP
+ (2, 3, 4)
+
+ This equivalent to taking a random selection from
+ ``itertools.combinations(iterable, r)``.
+
+ """
+ pool = tuple(iterable)
+ n = len(pool)
+ indices = sorted(sample(range(n), r))
+ return tuple(pool[i] for i in indices)
+
+
+def random_combination_with_replacement(iterable, r):
+ """Return a random *r* length subsequence of elements in *iterable*,
+ allowing individual elements to be repeated.
+
+ >>> random_combination_with_replacement(range(3), 5) # doctest:+SKIP
+ (0, 0, 1, 2, 2)
+
+ This equivalent to taking a random selection from
+ ``itertools.combinations_with_replacement(iterable, r)``.
+
+ """
+ pool = tuple(iterable)
+ n = len(pool)
+ indices = sorted(randrange(n) for i in range(r))
+ return tuple(pool[i] for i in indices)
+
+
+def nth_combination(iterable, r, index):
+ """Equivalent to ``list(combinations(iterable, r))[index]``.
+
+ The subsequences of *iterable* that are of length *r* can be ordered
+ lexicographically. :func:`nth_combination` computes the subsequence at
+ sort position *index* directly, without computing the previous
+ subsequences.
+
+ >>> nth_combination(range(5), 3, 5)
+ (0, 3, 4)
+
+ ``ValueError`` will be raised If *r* is negative or greater than the length
+ of *iterable*.
+ ``IndexError`` will be raised if the given *index* is invalid.
+ """
+ pool = tuple(iterable)
+ n = len(pool)
+ if (r < 0) or (r > n):
+ raise ValueError
+
+ c = 1
+ k = min(r, n - r)
+ for i in range(1, k + 1):
+ c = c * (n - k + i) // i
+
+ if index < 0:
+ index += c
+
+ if (index < 0) or (index >= c):
+ raise IndexError
+
+ result = []
+ while r:
+ c, n, r = c * r // n, n - 1, r - 1
+ while index >= c:
+ index -= c
+ c, n = c * (n - r) // n, n - 1
+ result.append(pool[-1 - n])
+
+ return tuple(result)
+
+
+def prepend(value, iterator):
+ """Yield *value*, followed by the elements in *iterator*.
+
+ >>> value = '0'
+ >>> iterator = ['1', '2', '3']
+ >>> list(prepend(value, iterator))
+ ['0', '1', '2', '3']
+
+ To prepend multiple values, see :func:`itertools.chain`
+ or :func:`value_chain`.
+
+ """
+ return chain([value], iterator)
+
+
+def convolve(signal, kernel):
+ """Convolve the iterable *signal* with the iterable *kernel*.
+
+ >>> signal = (1, 2, 3, 4, 5)
+ >>> kernel = [3, 2, 1]
+ >>> list(convolve(signal, kernel))
+ [3, 8, 14, 20, 26, 14, 5]
+
+ Note: the input arguments are not interchangeable, as the *kernel*
+ is immediately consumed and stored.
+
+ """
+ kernel = tuple(kernel)[::-1]
+ n = len(kernel)
+ window = deque([0], maxlen=n) * n
+ for x in chain(signal, repeat(0, n - 1)):
+ window.append(x)
+ yield sum(map(operator.mul, kernel, window))
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/__about__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/__about__.cpython-39.pyc
index e0112f22..14e0b948 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/__about__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/__about__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/__init__.cpython-39.pyc
index 77691360..17bd6a8f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/_compat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/_compat.cpython-39.pyc
index 175ce3a4..223f2ef3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/_compat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/_compat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/_structures.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/_structures.cpython-39.pyc
index f5bc0f22..033239e9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/_structures.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/_structures.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/_typing.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/_typing.cpython-39.pyc
index b19d7a97..cbe4a7f1 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/_typing.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/_typing.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/markers.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/markers.cpython-39.pyc
index f9117b9c..954b09e5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/markers.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/markers.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/requirements.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/requirements.cpython-39.pyc
index 79a09826..d679cd74 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/requirements.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/requirements.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/specifiers.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/specifiers.cpython-39.pyc
index 02a8e6fa..072da698 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/specifiers.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/specifiers.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/tags.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/tags.cpython-39.pyc
index 9977a783..ced061a3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/tags.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/tags.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/utils.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/utils.cpython-39.pyc
index 05dc68ca..5f055483 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/utils.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/utils.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/version.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/version.cpython-39.pyc
index 684eecfa..83ac7ddf 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/version.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/packaging/__pycache__/version.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/pyparsing.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/pyparsing.py
index 4aa30ee6..1333c00e 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/pyparsing.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/_vendor/pyparsing.py
@@ -1625,7 +1625,7 @@ class ParserElement(object):
(see L{I{parseWithTabs}})
- define your parse action using the full C{(s,loc,toks)} signature, and
reference the input string using the parse action's C{s} argument
- - explictly expand the tabs in your input string before calling
+ - explicitly expand the tabs in your input string before calling
C{parseString}
Example::
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__init__.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__init__.py
index 570e6957..b966dcea 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__init__.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__init__.py
@@ -1,15 +1,6 @@
-__all__ = [
- 'alias', 'bdist_egg', 'bdist_rpm', 'build_ext', 'build_py', 'develop',
- 'easy_install', 'egg_info', 'install', 'install_lib', 'rotate', 'saveopts',
- 'sdist', 'setopt', 'test', 'install_egg_info', 'install_scripts',
- 'upload_docs', 'build_clib', 'dist_info',
-]
-
from distutils.command.bdist import bdist
import sys
-from setuptools.command import install_scripts
-
if 'egg' not in bdist.format_commands:
bdist.format_command['egg'] = ('bdist_egg', "Python .egg file")
bdist.format_commands.append('egg')
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/__init__.cpython-39.pyc
index 8ba666de..6a6502d4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/alias.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/alias.cpython-39.pyc
index 984a526d..99111a75 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/alias.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/alias.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/bdist_egg.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/bdist_egg.cpython-39.pyc
index 04d212b2..5ace73bc 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/bdist_egg.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/bdist_egg.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/bdist_rpm.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/bdist_rpm.cpython-39.pyc
index 35aade74..22632516 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/bdist_rpm.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/bdist_rpm.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/build_clib.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/build_clib.cpython-39.pyc
index 1ddffa00..af853e23 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/build_clib.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/build_clib.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/build_ext.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/build_ext.cpython-39.pyc
index 4e937dba..48420b48 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/build_ext.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/build_ext.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/build_py.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/build_py.cpython-39.pyc
index e7228707..d36812cd 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/build_py.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/build_py.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/develop.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/develop.cpython-39.pyc
index 5e5472bc..8cb92f3a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/develop.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/develop.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/dist_info.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/dist_info.cpython-39.pyc
index 0565df04..bd796873 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/dist_info.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/dist_info.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/easy_install.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/easy_install.cpython-39.pyc
index 021d5e5a..b6fa651e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/easy_install.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/easy_install.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/egg_info.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/egg_info.cpython-39.pyc
index 720dc9fd..712540dc 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/egg_info.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/egg_info.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/install.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/install.cpython-39.pyc
index cefc87c1..b2f782e8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/install.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/install.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/install_egg_info.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/install_egg_info.cpython-39.pyc
index 126d85c7..ea726679 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/install_egg_info.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/install_egg_info.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/install_lib.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/install_lib.cpython-39.pyc
index 26ca87ab..efedc47d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/install_lib.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/install_lib.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/install_scripts.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/install_scripts.cpython-39.pyc
index c8df6232..672d933d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/install_scripts.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/install_scripts.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/py36compat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/py36compat.cpython-39.pyc
index cadd46e2..aafcdcac 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/py36compat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/py36compat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/register.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/register.cpython-39.pyc
index 8a1c1cbc..b735e92d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/register.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/register.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/rotate.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/rotate.cpython-39.pyc
index ffc834f0..b92678c0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/rotate.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/rotate.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/saveopts.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/saveopts.cpython-39.pyc
index c023af66..c75205dd 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/saveopts.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/saveopts.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/sdist.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/sdist.cpython-39.pyc
index abdc057c..3f200422 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/sdist.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/sdist.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/setopt.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/setopt.cpython-39.pyc
index eb66822f..5bf36b02 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/setopt.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/setopt.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/test.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/test.cpython-39.pyc
index e6f0e6f4..6c6047e4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/test.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/test.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/upload.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/upload.cpython-39.pyc
index d89e8b31..052f5902 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/upload.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/upload.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/upload_docs.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/upload_docs.cpython-39.pyc
index b4d2b883..57c2be7e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/upload_docs.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/__pycache__/upload_docs.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/build_ext.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/build_ext.py
index 03a72b4f..c59eff8b 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/build_ext.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/build_ext.py
@@ -104,14 +104,20 @@ class build_ext(_build_ext):
self.write_stub(package_dir or os.curdir, ext, True)
def get_ext_filename(self, fullname):
- filename = _build_ext.get_ext_filename(self, fullname)
+ so_ext = os.getenv('SETUPTOOLS_EXT_SUFFIX')
+ if so_ext:
+ filename = os.path.join(*fullname.split('.')) + so_ext
+ else:
+ filename = _build_ext.get_ext_filename(self, fullname)
+ so_ext = get_config_var('EXT_SUFFIX')
+
if fullname in self.ext_map:
ext = self.ext_map[fullname]
use_abi3 = getattr(ext, 'py_limited_api') and get_abi3_suffix()
if use_abi3:
- so_ext = get_config_var('EXT_SUFFIX')
filename = filename[:-len(so_ext)]
- filename = filename + get_abi3_suffix()
+ so_ext = get_abi3_suffix()
+ filename = filename + so_ext
if isinstance(ext, Library):
fn, ext = os.path.splitext(filename)
return self.shlib_compiler.library_filename(fn, libtype)
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/build_py.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/build_py.py
index b30aa129..df6fd323 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/build_py.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/build_py.py
@@ -8,6 +8,7 @@ import io
import distutils.errors
import itertools
import stat
+from setuptools.extern.more_itertools import unique_everseen
try:
from setuptools.lib2to3_ex import Mixin2to3
@@ -214,7 +215,7 @@ class build_py(orig.build_py, Mixin2to3):
if fn not in bad
)
# ditch dupes
- return list(_unique_everseen(keepers))
+ return list(unique_everseen(keepers))
@staticmethod
def _get_platform_patterns(spec, package, src_dir):
@@ -235,25 +236,6 @@ class build_py(orig.build_py, Mixin2to3):
)
-# from Python docs
-def _unique_everseen(iterable, key=None):
- "List unique elements, preserving order. Remember all elements ever seen."
- # unique_everseen('AAAABBBCCDAABBB') --> A B C D
- # unique_everseen('ABBCcAD', str.lower) --> A B C D
- seen = set()
- seen_add = seen.add
- if key is None:
- for element in itertools.filterfalse(seen.__contains__, iterable):
- seen_add(element)
- yield element
- else:
- for element in iterable:
- k = key(element)
- if k not in seen:
- seen_add(k)
- yield element
-
-
def assert_relative(path):
if not os.path.isabs(path):
return path
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/egg_info.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/egg_info.py
index 1f120b67..18b81340 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/egg_info.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/egg_info.py
@@ -541,6 +541,7 @@ class manifest_maker(sdist):
self.add_defaults()
if os.path.exists(self.template):
self.read_template()
+ self.add_license_files()
self.prune_file_list()
self.filelist.sort()
self.filelist.remove_duplicates()
@@ -575,7 +576,6 @@ class manifest_maker(sdist):
def add_defaults(self):
sdist.add_defaults(self)
- self.check_license()
self.filelist.append(self.template)
self.filelist.append(self.manifest)
rcfiles = list(walk_revctrl())
@@ -592,6 +592,13 @@ class manifest_maker(sdist):
ei_cmd = self.get_finalized_command('egg_info')
self.filelist.graft(ei_cmd.egg_info)
+ def add_license_files(self):
+ license_files = self.distribution.metadata.license_files or []
+ for lf in license_files:
+ log.info("adding license file '%s'", lf)
+ pass
+ self.filelist.extend(license_files)
+
def prune_file_list(self):
build = self.get_finalized_command('build')
base_dir = self.distribution.get_fullname()
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/sdist.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/sdist.py
index a6ea814a..4a014283 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/sdist.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/sdist.py
@@ -4,9 +4,6 @@ import os
import sys
import io
import contextlib
-from glob import iglob
-
-from setuptools.extern import ordered_set
from .py36compat import sdist_add_defaults
@@ -190,46 +187,3 @@ class sdist(sdist_add_defaults, orig.sdist):
continue
self.filelist.append(line)
manifest.close()
-
- def check_license(self):
- """Checks if license_file' or 'license_files' is configured and adds any
- valid paths to 'self.filelist'.
- """
- opts = self.distribution.get_option_dict('metadata')
-
- files = ordered_set.OrderedSet()
- try:
- license_files = self.distribution.metadata.license_files
- except TypeError:
- log.warn("warning: 'license_files' option is malformed")
- license_files = ordered_set.OrderedSet()
- patterns = license_files if isinstance(license_files, ordered_set.OrderedSet) \
- else ordered_set.OrderedSet(license_files)
-
- if 'license_file' in opts:
- log.warn(
- "warning: the 'license_file' option is deprecated, "
- "use 'license_files' instead")
- patterns.append(opts['license_file'][1])
-
- if 'license_file' not in opts and 'license_files' not in opts:
- # Default patterns match the ones wheel uses
- # See https://wheel.readthedocs.io/en/stable/user_guide.html
- # -> 'Including license files in the generated wheel file'
- patterns = ('LICEN[CS]E*', 'COPYING*', 'NOTICE*', 'AUTHORS*')
-
- for pattern in patterns:
- for path in iglob(pattern):
- if path.endswith('~'):
- log.debug(
- "ignoring license file '%s' as it looks like a backup",
- path)
- continue
-
- if path not in files and os.path.isfile(path):
- log.info(
- "adding license file '%s' (matched pattern '%s')",
- path, pattern)
- files.add(path)
-
- self.filelist.extend(sorted(files))
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/test.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/test.py
index cf71ad01..de4f3d11 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/test.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/command/test.py
@@ -12,7 +12,7 @@ from pkg_resources import (resource_listdir, resource_exists, normalize_path,
working_set, _namespace_packages, evaluate_marker,
add_activation_listener, require, EntryPoint)
from setuptools import Command
-from .build_py import _unique_everseen
+from setuptools.extern.more_itertools import unique_everseen
class ScanningLoader(TestLoader):
@@ -182,7 +182,7 @@ class test(Command):
orig_pythonpath = os.environ.get('PYTHONPATH', nothing)
current_pythonpath = os.environ.get('PYTHONPATH', '')
try:
- prefix = os.pathsep.join(_unique_everseen(paths))
+ prefix = os.pathsep.join(unique_everseen(paths))
to_join = filter(None, [prefix, current_pythonpath])
new_path = os.pathsep.join(to_join)
if new_path:
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/config.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/config.py
index 4a6cd469..44de7cf5 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/config.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/config.py
@@ -520,6 +520,11 @@ class ConfigMetadataHandler(ConfigHandler):
'obsoletes': parse_list,
'classifiers': self._get_parser_compound(parse_file, parse_list),
'license': exclude_files_parser('license'),
+ 'license_file': self._deprecated_config_handler(
+ exclude_files_parser('license_file'),
+ "The license_file parameter is deprecated, "
+ "use license_files instead.",
+ DeprecationWarning),
'license_files': parse_list,
'description': parse_file,
'long_description': parse_file,
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/dist.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/dist.py
index 7cebcb37..df071c16 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/dist.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/dist.py
@@ -15,7 +15,10 @@ import distutils.command
from distutils.util import strtobool
from distutils.debug import DEBUG
from distutils.fancy_getopt import translate_longopt
+from glob import iglob
import itertools
+import textwrap
+from typing import List, Optional, TYPE_CHECKING
from collections import defaultdict
from email import message_from_file
@@ -26,6 +29,7 @@ from distutils.version import StrictVersion
from setuptools.extern import packaging
from setuptools.extern import ordered_set
+from setuptools.extern.more_itertools import unique_everseen
from . import SetuptoolsDeprecationWarning
@@ -36,6 +40,9 @@ from setuptools.monkey import get_unpatched
from setuptools.config import parse_configuration
import pkg_resources
+if TYPE_CHECKING:
+ from email.message import Message
+
__import__('setuptools.extern.packaging.specifiers')
__import__('setuptools.extern.packaging.version')
@@ -47,78 +54,97 @@ def _get_unpatched(cls):
def get_metadata_version(self):
mv = getattr(self, 'metadata_version', None)
-
if mv is None:
- if self.long_description_content_type or self.provides_extras:
- mv = StrictVersion('2.1')
- elif (self.maintainer is not None or
- self.maintainer_email is not None or
- getattr(self, 'python_requires', None) is not None or
- self.project_urls):
- mv = StrictVersion('1.2')
- elif (self.provides or self.requires or self.obsoletes or
- self.classifiers or self.download_url):
- mv = StrictVersion('1.1')
- else:
- mv = StrictVersion('1.0')
-
+ mv = StrictVersion('2.1')
self.metadata_version = mv
-
return mv
+def rfc822_unescape(content: str) -> str:
+ """Reverse RFC-822 escaping by removing leading whitespaces from content."""
+ lines = content.splitlines()
+ if len(lines) == 1:
+ return lines[0].lstrip()
+ return '\n'.join(
+ (lines[0].lstrip(),
+ textwrap.dedent('\n'.join(lines[1:]))))
+
+
+def _read_field_from_msg(msg: "Message", field: str) -> Optional[str]:
+ """Read Message header field."""
+ value = msg[field]
+ if value == 'UNKNOWN':
+ return None
+ return value
+
+
+def _read_field_unescaped_from_msg(msg: "Message", field: str) -> Optional[str]:
+ """Read Message header field and apply rfc822_unescape."""
+ value = _read_field_from_msg(msg, field)
+ if value is None:
+ return value
+ return rfc822_unescape(value)
+
+
+def _read_list_from_msg(msg: "Message", field: str) -> Optional[List[str]]:
+ """Read Message header field and return all results as list."""
+ values = msg.get_all(field, None)
+ if values == []:
+ return None
+ return values
+
+
+def _read_payload_from_msg(msg: "Message") -> Optional[str]:
+ value = msg.get_payload().strip()
+ if value == 'UNKNOWN':
+ return None
+ return value
+
+
def read_pkg_file(self, file):
"""Reads the metadata values from a file object."""
msg = message_from_file(file)
- def _read_field(name):
- value = msg[name]
- if value == 'UNKNOWN':
- return None
- return value
-
- def _read_list(name):
- values = msg.get_all(name, None)
- if values == []:
- return None
- return values
-
self.metadata_version = StrictVersion(msg['metadata-version'])
- self.name = _read_field('name')
- self.version = _read_field('version')
- self.description = _read_field('summary')
+ self.name = _read_field_from_msg(msg, 'name')
+ self.version = _read_field_from_msg(msg, 'version')
+ self.description = _read_field_from_msg(msg, 'summary')
# we are filling author only.
- self.author = _read_field('author')
+ self.author = _read_field_from_msg(msg, 'author')
self.maintainer = None
- self.author_email = _read_field('author-email')
+ self.author_email = _read_field_from_msg(msg, 'author-email')
self.maintainer_email = None
- self.url = _read_field('home-page')
- self.license = _read_field('license')
+ self.url = _read_field_from_msg(msg, 'home-page')
+ self.license = _read_field_unescaped_from_msg(msg, 'license')
if 'download-url' in msg:
- self.download_url = _read_field('download-url')
+ self.download_url = _read_field_from_msg(msg, 'download-url')
else:
self.download_url = None
- self.long_description = _read_field('description')
- self.description = _read_field('summary')
+ self.long_description = _read_field_unescaped_from_msg(msg, 'description')
+ if self.long_description is None and self.metadata_version >= StrictVersion('2.1'):
+ self.long_description = _read_payload_from_msg(msg)
+ self.description = _read_field_from_msg(msg, 'summary')
if 'keywords' in msg:
- self.keywords = _read_field('keywords').split(',')
+ self.keywords = _read_field_from_msg(msg, 'keywords').split(',')
- self.platforms = _read_list('platform')
- self.classifiers = _read_list('classifier')
+ self.platforms = _read_list_from_msg(msg, 'platform')
+ self.classifiers = _read_list_from_msg(msg, 'classifier')
# PEP 314 - these fields only exist in 1.1
if self.metadata_version == StrictVersion('1.1'):
- self.requires = _read_list('requires')
- self.provides = _read_list('provides')
- self.obsoletes = _read_list('obsoletes')
+ self.requires = _read_list_from_msg(msg, 'requires')
+ self.provides = _read_list_from_msg(msg, 'provides')
+ self.obsoletes = _read_list_from_msg(msg, 'obsoletes')
else:
self.requires = None
self.provides = None
self.obsoletes = None
+ self.license_files = _read_list_from_msg(msg, 'license-file')
+
def single_line(val):
# quick and dirty validation for description pypa/setuptools#1390
@@ -144,41 +170,31 @@ def write_pkg_file(self, file): # noqa: C901 # is too complex (14) # FIXME
write_field('Summary', single_line(self.get_description()))
write_field('Home-page', self.get_url())
- if version < StrictVersion('1.2'):
- write_field('Author', self.get_contact())
- write_field('Author-email', self.get_contact_email())
- else:
- optional_fields = (
- ('Author', 'author'),
- ('Author-email', 'author_email'),
- ('Maintainer', 'maintainer'),
- ('Maintainer-email', 'maintainer_email'),
- )
+ optional_fields = (
+ ('Author', 'author'),
+ ('Author-email', 'author_email'),
+ ('Maintainer', 'maintainer'),
+ ('Maintainer-email', 'maintainer_email'),
+ )
- for field, attr in optional_fields:
- attr_val = getattr(self, attr)
+ for field, attr in optional_fields:
+ attr_val = getattr(self, attr, None)
+ if attr_val is not None:
+ write_field(field, attr_val)
- if attr_val is not None:
- write_field(field, attr_val)
-
- write_field('License', self.get_license())
+ license = rfc822_escape(self.get_license())
+ write_field('License', license)
if self.download_url:
write_field('Download-URL', self.download_url)
for project_url in self.project_urls.items():
write_field('Project-URL', '%s, %s' % project_url)
- long_desc = rfc822_escape(self.get_long_description())
- write_field('Description', long_desc)
-
keywords = ','.join(self.get_keywords())
if keywords:
write_field('Keywords', keywords)
- if version >= StrictVersion('1.2'):
- for platform in self.get_platforms():
- write_field('Platform', platform)
- else:
- self._write_list(file, 'Platform', self.get_platforms())
+ for platform in self.get_platforms():
+ write_field('Platform', platform)
self._write_list(file, 'Classifier', self.get_classifiers())
@@ -201,6 +217,10 @@ def write_pkg_file(self, file): # noqa: C901 # is too complex (14) # FIXME
for extra in self.provides_extras:
write_field('Provides-Extra', extra)
+ self._write_list(file, 'License-File', self.license_files or [])
+
+ file.write("\n%s\n\n" % self.get_long_description())
+
sequence = tuple, list
@@ -397,10 +417,11 @@ class Distribution(_Distribution):
"""
_DISTUTILS_UNSUPPORTED_METADATA = {
- 'long_description_content_type': None,
+ 'long_description_content_type': lambda: None,
'project_urls': dict,
'provides_extras': ordered_set.OrderedSet,
- 'license_files': ordered_set.OrderedSet,
+ 'license_file': lambda: None,
+ 'license_files': lambda: None,
}
_patched_dist = None
@@ -436,22 +457,22 @@ class Distribution(_Distribution):
if k not in self._DISTUTILS_UNSUPPORTED_METADATA
})
- # Fill-in missing metadata fields not supported by distutils.
- # Note some fields may have been set by other tools (e.g. pbr)
- # above; they are taken preferrentially to setup() arguments
- for option, default in self._DISTUTILS_UNSUPPORTED_METADATA.items():
- for source in self.metadata.__dict__, attrs:
- if option in source:
- value = source[option]
- break
- else:
- value = default() if default else None
- setattr(self.metadata, option, value)
+ self._set_metadata_defaults(attrs)
self.metadata.version = self._normalize_version(
self._validate_version(self.metadata.version))
self._finalize_requires()
+ def _set_metadata_defaults(self, attrs):
+ """
+ Fill-in missing metadata fields not supported by distutils.
+ Some fields may have been set by other tools (e.g. pbr).
+ Those fields (vars(self.metadata)) take precedence to
+ supplied attrs.
+ """
+ for option, default in self._DISTUTILS_UNSUPPORTED_METADATA.items():
+ vars(self.metadata).setdefault(option, attrs.get(option, default()))
+
@staticmethod
def _normalize_version(version):
if isinstance(version, setuptools.sic) or version is None:
@@ -559,6 +580,40 @@ class Distribution(_Distribution):
req.marker = None
return req
+ def _finalize_license_files(self):
+ """Compute names of all license files which should be included."""
+ license_files: Optional[List[str]] = self.metadata.license_files
+ patterns: List[str] = license_files if license_files else []
+
+ license_file: Optional[str] = self.metadata.license_file
+ if license_file and license_file not in patterns:
+ patterns.append(license_file)
+
+ if license_files is None and license_file is None:
+ # Default patterns match the ones wheel uses
+ # See https://wheel.readthedocs.io/en/stable/user_guide.html
+ # -> 'Including license files in the generated wheel file'
+ patterns = ('LICEN[CS]E*', 'COPYING*', 'NOTICE*', 'AUTHORS*')
+
+ self.metadata.license_files = list(
+ unique_everseen(self._expand_patterns(patterns)))
+
+ @staticmethod
+ def _expand_patterns(patterns):
+ """
+ >>> list(Distribution._expand_patterns(['LICENSE']))
+ ['LICENSE']
+ >>> list(Distribution._expand_patterns(['setup.cfg', 'LIC*']))
+ ['setup.cfg', 'LICENSE']
+ """
+ return (
+ path
+ for pattern in patterns
+ for path in sorted(iglob(pattern))
+ if not path.endswith('~')
+ and os.path.isfile(path)
+ )
+
# FIXME: 'Distribution._parse_config_files' is too complex (14)
def _parse_config_files(self, filenames=None): # noqa: C901
"""
@@ -633,7 +688,7 @@ class Distribution(_Distribution):
return opt
underscore_opt = opt.replace('-', '_')
- commands = distutils.command.__all__ + setuptools.command.__all__
+ commands = distutils.command.__all__ + self._setuptools_commands()
if (not section.startswith('options') and section != 'metadata'
and section not in commands):
return underscore_opt
@@ -645,6 +700,14 @@ class Distribution(_Distribution):
% (opt, underscore_opt))
return underscore_opt
+ def _setuptools_commands(self):
+ try:
+ dist = pkg_resources.get_distribution('setuptools')
+ return list(dist.get_entry_map('distutils.commands'))
+ except pkg_resources.DistributionNotFound:
+ # during bootstrapping, distribution doesn't exist
+ return []
+
def make_option_lowercase(self, opt, section):
if section != 'metadata' or opt.islower():
return opt
@@ -715,6 +778,7 @@ class Distribution(_Distribution):
parse_configuration(self, self.command_options,
ignore_option_errors=ignore_option_errors)
self._finalize_requires()
+ self._finalize_license_files()
def fetch_build_eggs(self, requires):
"""Resolve pre-setup requirements"""
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/extern/__init__.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/extern/__init__.py
index 7df32fde..baca1afa 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/extern/__init__.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/extern/__init__.py
@@ -69,5 +69,5 @@ class VendorImporter:
sys.meta_path.append(self)
-names = 'packaging', 'pyparsing', 'ordered_set',
+names = 'packaging', 'pyparsing', 'ordered_set', 'more_itertools',
VendorImporter(__name__, names, 'setuptools._vendor').install()
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/extern/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/setuptools/extern/__pycache__/__init__.cpython-39.pyc
index 3dd7f35c..a7c6e4cf 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/setuptools/extern/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/setuptools/extern/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/msvc.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/msvc.py
index d5e0a952..281ea1c2 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/msvc.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/msvc.py
@@ -30,6 +30,7 @@ import itertools
import subprocess
import distutils.errors
from setuptools.extern.packaging.version import LegacyVersion
+from setuptools.extern.more_itertools import unique_everseen
from .monkey import get_unpatched
@@ -193,7 +194,9 @@ def _msvc14_find_vc2017():
join(root, "Microsoft Visual Studio", "Installer", "vswhere.exe"),
"-latest",
"-prerelease",
+ "-requiresAny",
"-requires", "Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
+ "-requires", "Microsoft.VisualStudio.Workload.WDExpress",
"-property", "installationPath",
"-products", "*",
]).decode(encoding="mbcs", errors="strict").strip()
@@ -1798,29 +1801,5 @@ class EnvironmentInfo:
if not extant_paths:
msg = "%s environment variable is empty" % name.upper()
raise distutils.errors.DistutilsPlatformError(msg)
- unique_paths = self._unique_everseen(extant_paths)
+ unique_paths = unique_everseen(extant_paths)
return pathsep.join(unique_paths)
-
- # from Python docs
- @staticmethod
- def _unique_everseen(iterable, key=None):
- """
- List unique elements, preserving order.
- Remember all elements ever seen.
-
- _unique_everseen('AAAABBBCCDAABBB') --> A B C D
-
- _unique_everseen('ABBCcAD', str.lower) --> A B C D
- """
- seen = set()
- seen_add = seen.add
- if key is None:
- for element in itertools.filterfalse(seen.__contains__, iterable):
- seen_add(element)
- yield element
- else:
- for element in iterable:
- k = key(element)
- if k not in seen:
- seen_add(k)
- yield element
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/package_index.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/package_index.py
index 123e9582..d818f44a 100644
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/package_index.py
+++ b/IKEA_scraper/.venv/Lib/site-packages/setuptools/package_index.py
@@ -23,11 +23,12 @@ from pkg_resources import (
Environment, find_distributions, safe_name, safe_version,
to_filename, Requirement, DEVELOP_DIST, EGG_DIST,
)
-from setuptools import ssl_support
from distutils import log
from distutils.errors import DistutilsError
from fnmatch import translate
from setuptools.wheel import Wheel
+from setuptools.extern.more_itertools import unique_everseen
+
EGG_FRAGMENT = re.compile(r'^egg=([-A-Za-z0-9_.+!]+)$')
HREF = re.compile(r"""href\s*=\s*['"]?([^'"> ]+)""", re.I)
@@ -161,7 +162,7 @@ def interpret_distro_name(
# Generate alternative interpretations of a source distro name
# Because some packages are ambiguous as to name/versions split
# e.g. "adns-python-1.1.0", "egenix-mx-commercial", etc.
- # So, we generate each possible interepretation (e.g. "adns, python-1.1.0"
+ # So, we generate each possible interpretation (e.g. "adns, python-1.1.0"
# "adns-python, 1.1.0", and "adns-python-1.1.0, no version"). In practice,
# the spurious interpretations should be ignored, because in the event
# there's also an "adns" package, the spurious "python-1.1.0" version will
@@ -183,25 +184,6 @@ def interpret_distro_name(
)
-# From Python 2.7 docs
-def unique_everseen(iterable, key=None):
- "List unique elements, preserving order. Remember all elements ever seen."
- # unique_everseen('AAAABBBCCDAABBB') --> A B C D
- # unique_everseen('ABBCcAD', str.lower) --> A B C D
- seen = set()
- seen_add = seen.add
- if key is None:
- for element in itertools.filterfalse(seen.__contains__, iterable):
- seen_add(element)
- yield element
- else:
- for element in iterable:
- k = key(element)
- if k not in seen:
- seen_add(k)
- yield element
-
-
def unique_values(func):
"""
Wrap a function returning an iterable such that the resulting iterable
@@ -310,15 +292,7 @@ class PackageIndex(Environment):
self.package_pages = {}
self.allows = re.compile('|'.join(map(translate, hosts))).match
self.to_scan = []
- use_ssl = (
- verify_ssl
- and ssl_support.is_available
- and (ca_bundle or ssl_support.find_ca_bundle())
- )
- if use_ssl:
- self.opener = ssl_support.opener_for(ca_bundle)
- else:
- self.opener = urllib.request.urlopen
+ self.opener = urllib.request.urlopen
# FIXME: 'PackageIndex.process_url' is too complex (14)
def process_url(self, url, retrieve=False): # noqa: C901
diff --git a/IKEA_scraper/.venv/Lib/site-packages/setuptools/ssl_support.py b/IKEA_scraper/.venv/Lib/site-packages/setuptools/ssl_support.py
deleted file mode 100644
index b58cca37..00000000
--- a/IKEA_scraper/.venv/Lib/site-packages/setuptools/ssl_support.py
+++ /dev/null
@@ -1,266 +0,0 @@
-import os
-import socket
-import atexit
-import re
-import functools
-import urllib.request
-import http.client
-
-
-from pkg_resources import ResolutionError, ExtractionError
-
-try:
- import ssl
-except ImportError:
- ssl = None
-
-__all__ = [
- 'VerifyingHTTPSHandler', 'find_ca_bundle', 'is_available', 'cert_paths',
- 'opener_for'
-]
-
-cert_paths = """
-/etc/pki/tls/certs/ca-bundle.crt
-/etc/ssl/certs/ca-certificates.crt
-/usr/share/ssl/certs/ca-bundle.crt
-/usr/local/share/certs/ca-root.crt
-/etc/ssl/cert.pem
-/System/Library/OpenSSL/certs/cert.pem
-/usr/local/share/certs/ca-root-nss.crt
-/etc/ssl/ca-bundle.pem
-""".strip().split()
-
-try:
- HTTPSHandler = urllib.request.HTTPSHandler
- HTTPSConnection = http.client.HTTPSConnection
-except AttributeError:
- HTTPSHandler = HTTPSConnection = object
-
-is_available = ssl is not None and object not in (
- HTTPSHandler, HTTPSConnection)
-
-
-try:
- from ssl import CertificateError, match_hostname
-except ImportError:
- try:
- from backports.ssl_match_hostname import CertificateError
- from backports.ssl_match_hostname import match_hostname
- except ImportError:
- CertificateError = None
- match_hostname = None
-
-if not CertificateError:
-
- class CertificateError(ValueError):
- pass
-
-
-if not match_hostname: # noqa: C901 # 'If 59' is too complex (21) # FIXME
-
- def _dnsname_match(dn, hostname, max_wildcards=1):
- """Matching according to RFC 6125, section 6.4.3
-
- https://tools.ietf.org/html/rfc6125#section-6.4.3
- """
- pats = []
- if not dn:
- return False
-
- # Ported from python3-syntax:
- # leftmost, *remainder = dn.split(r'.')
- parts = dn.split(r'.')
- leftmost = parts[0]
- remainder = parts[1:]
-
- wildcards = leftmost.count('*')
- if wildcards > max_wildcards:
- # Issue #17980: avoid denials of service by refusing more
- # than one wildcard per fragment. A survey of established
- # policy among SSL implementations showed it to be a
- # reasonable choice.
- raise CertificateError(
- "too many wildcards in certificate DNS name: " + repr(dn))
-
- # speed up common case w/o wildcards
- if not wildcards:
- return dn.lower() == hostname.lower()
-
- # RFC 6125, section 6.4.3, subitem 1.
- # The client SHOULD NOT attempt to match a
- # presented identifier in which the wildcard
- # character comprises a label other than the
- # left-most label.
- if leftmost == '*':
- # When '*' is a fragment by itself, it matches a non-empty dotless
- # fragment.
- pats.append('[^.]+')
- elif leftmost.startswith('xn--') or hostname.startswith('xn--'):
- # RFC 6125, section 6.4.3, subitem 3.
- # The client SHOULD NOT attempt to match a presented identifier
- # where the wildcard character is embedded within an A-label or
- # U-label of an internationalized domain name.
- pats.append(re.escape(leftmost))
- else:
- # Otherwise, '*' matches any dotless string, e.g. www*
- pats.append(re.escape(leftmost).replace(r'\*', '[^.]*'))
-
- # add the remaining fragments, ignore any wildcards
- for frag in remainder:
- pats.append(re.escape(frag))
-
- pat = re.compile(r'\A' + r'\.'.join(pats) + r'\Z', re.IGNORECASE)
- return pat.match(hostname)
-
- def match_hostname(cert, hostname):
- """Verify that *cert* (in decoded format as returned by
- SSLSocket.getpeercert()) matches the *hostname*. RFC 2818 and RFC 6125
- rules are followed, but IP addresses are not accepted for *hostname*.
-
- CertificateError is raised on failure. On success, the function
- returns nothing.
- """
- if not cert:
- raise ValueError("empty or no certificate")
- dnsnames = []
- san = cert.get('subjectAltName', ())
- for key, value in san:
- if key == 'DNS':
- if _dnsname_match(value, hostname):
- return
- dnsnames.append(value)
- if not dnsnames:
- # The subject is only checked when there is no dNSName entry
- # in subjectAltName
- for sub in cert.get('subject', ()):
- for key, value in sub:
- # XXX according to RFC 2818, the most specific Common Name
- # must be used.
- if key == 'commonName':
- if _dnsname_match(value, hostname):
- return
- dnsnames.append(value)
- if len(dnsnames) > 1:
- raise CertificateError(
- "hostname %r doesn't match either of %s"
- % (hostname, ', '.join(map(repr, dnsnames))))
- elif len(dnsnames) == 1:
- raise CertificateError(
- "hostname %r doesn't match %r"
- % (hostname, dnsnames[0]))
- else:
- raise CertificateError(
- "no appropriate commonName or "
- "subjectAltName fields were found")
-
-
-class VerifyingHTTPSHandler(HTTPSHandler):
- """Simple verifying handler: no auth, subclasses, timeouts, etc."""
-
- def __init__(self, ca_bundle):
- self.ca_bundle = ca_bundle
- HTTPSHandler.__init__(self)
-
- def https_open(self, req):
- return self.do_open(
- lambda host, **kw: VerifyingHTTPSConn(host, self.ca_bundle, **kw),
- req
- )
-
-
-class VerifyingHTTPSConn(HTTPSConnection):
- """Simple verifying connection: no auth, subclasses, timeouts, etc."""
-
- def __init__(self, host, ca_bundle, **kw):
- HTTPSConnection.__init__(self, host, **kw)
- self.ca_bundle = ca_bundle
-
- def connect(self):
- sock = socket.create_connection(
- (self.host, self.port), getattr(self, 'source_address', None)
- )
-
- # Handle the socket if a (proxy) tunnel is present
- if hasattr(self, '_tunnel') and getattr(self, '_tunnel_host', None):
- self.sock = sock
- self._tunnel()
- # http://bugs.python.org/issue7776: Python>=3.4.1 and >=2.7.7
- # change self.host to mean the proxy server host when tunneling is
- # being used. Adapt, since we are interested in the destination
- # host for the match_hostname() comparison.
- actual_host = self._tunnel_host
- else:
- actual_host = self.host
-
- if hasattr(ssl, 'create_default_context'):
- ctx = ssl.create_default_context(cafile=self.ca_bundle)
- self.sock = ctx.wrap_socket(sock, server_hostname=actual_host)
- else:
- # This is for python < 2.7.9 and < 3.4?
- self.sock = ssl.wrap_socket(
- sock, cert_reqs=ssl.CERT_REQUIRED, ca_certs=self.ca_bundle
- )
- try:
- match_hostname(self.sock.getpeercert(), actual_host)
- except CertificateError:
- self.sock.shutdown(socket.SHUT_RDWR)
- self.sock.close()
- raise
-
-
-def opener_for(ca_bundle=None):
- """Get a urlopen() replacement that uses ca_bundle for verification"""
- return urllib.request.build_opener(
- VerifyingHTTPSHandler(ca_bundle or find_ca_bundle())
- ).open
-
-
-# from jaraco.functools
-def once(func):
- @functools.wraps(func)
- def wrapper(*args, **kwargs):
- if not hasattr(func, 'always_returns'):
- func.always_returns = func(*args, **kwargs)
- return func.always_returns
- return wrapper
-
-
-@once
-def get_win_certfile():
- try:
- import wincertstore
- except ImportError:
- return None
-
- class CertFile(wincertstore.CertFile):
- def __init__(self):
- super(CertFile, self).__init__()
- atexit.register(self.close)
-
- def close(self):
- try:
- super(CertFile, self).close()
- except OSError:
- pass
-
- _wincerts = CertFile()
- _wincerts.addstore('CA')
- _wincerts.addstore('ROOT')
- return _wincerts.name
-
-
-def find_ca_bundle():
- """Return an existing CA bundle path, or None"""
- extant_cert_paths = filter(os.path.isfile, cert_paths)
- return (
- get_win_certfile()
- or next(extant_cert_paths, None)
- or _certifi_where()
- )
-
-
-def _certifi_where():
- try:
- return __import__('certifi').where()
- except (ImportError, ResolutionError, ExtractionError):
- pass
diff --git a/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/__init__.cpython-39.pyc
index 46f17d9f..fe328eb5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/__meta__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/__meta__.cpython-39.pyc
index 2b257b95..e876d1da 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/__meta__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/__meta__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/css_match.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/css_match.cpython-39.pyc
index ec3fa972..70fb3eef 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/css_match.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/css_match.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/css_parser.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/css_parser.cpython-39.pyc
index 86286c2e..74d9869b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/css_parser.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/css_parser.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/css_types.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/css_types.cpython-39.pyc
index b0db4bd1..418648ff 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/css_types.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/css_types.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/util.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/util.cpython-39.pyc
index dd043b80..fbda7a0e 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/util.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/soupsieve/__pycache__/util.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/__init__.cpython-39.pyc
index d8883216..07886e5a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/_collections.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/_collections.cpython-39.pyc
index d3c3149e..757a0bd7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/_collections.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/_collections.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/_version.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/_version.cpython-39.pyc
index 64c79e44..2b9f7bc3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/_version.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/_version.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/connection.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/connection.cpython-39.pyc
index 37b7d5bd..4b84e3a7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/connection.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/connection.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/connectionpool.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/connectionpool.cpython-39.pyc
index 711f3fb2..4a727beb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/connectionpool.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/connectionpool.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/exceptions.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/exceptions.cpython-39.pyc
index 373e7ab1..9dbf27a1 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/exceptions.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/exceptions.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/fields.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/fields.cpython-39.pyc
index 5623a840..6716a3f3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/fields.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/fields.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/filepost.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/filepost.cpython-39.pyc
index 6ca65197..d0c0ed53 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/filepost.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/filepost.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/poolmanager.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/poolmanager.cpython-39.pyc
index d3d56e8f..b2966872 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/poolmanager.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/poolmanager.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/request.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/request.cpython-39.pyc
index 78260292..288323a3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/request.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/request.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/response.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/response.cpython-39.pyc
index ee39f3c5..e3c1cccf 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/response.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/__pycache__/response.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/__init__.cpython-39.pyc
index ca3a8a05..f4d0b3ad 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/_appengine_environ.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/_appengine_environ.cpython-39.pyc
index b8a53dfd..8ca25a60 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/_appengine_environ.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/_appengine_environ.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/appengine.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/appengine.cpython-39.pyc
index 10decbfa..ead88d50 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/appengine.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/appengine.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/ntlmpool.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/ntlmpool.cpython-39.pyc
index 0d43781f..2dcad717 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/ntlmpool.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/ntlmpool.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/pyopenssl.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/pyopenssl.cpython-39.pyc
index a3ecd060..2a0689e0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/pyopenssl.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/pyopenssl.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/securetransport.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/securetransport.cpython-39.pyc
index 82a46dbf..b65b411b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/securetransport.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/securetransport.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/socks.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/socks.cpython-39.pyc
index be080b00..552576f0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/socks.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/__pycache__/socks.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-39.pyc
index 9f24bdc7..bb6935be 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-39.pyc
index 2e1f20da..f3e3f030 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-39.pyc
index eec1ec68..807faca2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/__pycache__/__init__.cpython-39.pyc
index c15af9a5..51105f21 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/__pycache__/six.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/__pycache__/six.cpython-39.pyc
index 9769a7ef..aa89a580 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/__pycache__/six.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/__pycache__/six.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/backports/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/backports/__pycache__/__init__.cpython-39.pyc
index d7fff7b2..a40a1e3f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/backports/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/backports/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/backports/__pycache__/makefile.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/backports/__pycache__/makefile.cpython-39.pyc
index 43cd51a2..f5ebb17f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/backports/__pycache__/makefile.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/backports/__pycache__/makefile.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-39.pyc
index 60608685..4e69e423 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-39.pyc
index 3f492321..65b8a4c2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/__init__.cpython-39.pyc
index 207bbb45..aecff60f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/connection.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/connection.cpython-39.pyc
index d7923cba..822e8bca 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/connection.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/connection.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/proxy.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/proxy.cpython-39.pyc
index 7812d88e..1ee5f4ff 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/proxy.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/proxy.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/queue.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/queue.cpython-39.pyc
index 055b8f93..6edcb0f9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/queue.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/queue.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/request.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/request.cpython-39.pyc
index 3fb49503..b73120b4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/request.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/request.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/response.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/response.cpython-39.pyc
index 039a9ab8..4f568377 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/response.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/response.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/retry.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/retry.cpython-39.pyc
index fe0223ee..e80a8929 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/retry.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/retry.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/ssl_.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/ssl_.cpython-39.pyc
index 04db21ff..2a0e6c33 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/ssl_.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/ssl_.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/ssltransport.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/ssltransport.cpython-39.pyc
index d66ccb6e..0c5412f4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/ssltransport.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/ssltransport.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/timeout.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/timeout.cpython-39.pyc
index 9fb8ff31..70282aba 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/timeout.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/timeout.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/url.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/url.cpython-39.pyc
index 0a3fd165..0a0426b8 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/url.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/url.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/wait.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/wait.cpython-39.pyc
index e70c4942..d026b8ed 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/wait.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/urllib3/util/__pycache__/wait.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/event/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/event/__pycache__/__init__.cpython-39.pyc
index e1245c12..15184898 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/event/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/event/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/event/__pycache__/classhandler.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/event/__pycache__/classhandler.cpython-39.pyc
index 01a91447..13fbcc36 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/event/__pycache__/classhandler.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/event/__pycache__/classhandler.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/event/__pycache__/tests.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/event/__pycache__/tests.cpython-39.pyc
index e6312992..c9ee013b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/event/__pycache__/tests.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/event/__pycache__/tests.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/__init__.cpython-39.pyc
index f7b9b476..155b7ffe 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/_compat.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/_compat.cpython-39.pyc
index 83c62ef7..c4c95d46 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/_compat.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/_compat.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/_flatten.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/_flatten.cpython-39.pyc
index 1253d697..a72511a0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/_flatten.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/_flatten.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/adapter.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/adapter.cpython-39.pyc
index 66211ed6..2937db21 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/adapter.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/adapter.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/advice.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/advice.cpython-39.pyc
index 4d95fa6f..b6d6c696 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/advice.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/advice.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/declarations.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/declarations.cpython-39.pyc
index 6e242c21..de50a330 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/declarations.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/declarations.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/document.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/document.cpython-39.pyc
index 061b2546..d1ce71bb 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/document.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/document.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/exceptions.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/exceptions.cpython-39.pyc
index 8c32a7c5..e7bf530c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/exceptions.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/exceptions.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/interface.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/interface.cpython-39.pyc
index 59dc0983..4c54ac8c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/interface.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/interface.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/interfaces.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/interfaces.cpython-39.pyc
index 89515365..447808a2 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/interfaces.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/interfaces.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/registry.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/registry.cpython-39.pyc
index a3bd22ff..f8b2682b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/registry.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/registry.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/ro.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/ro.cpython-39.pyc
index dff9b3f5..d4c7eed4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/ro.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/ro.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/verify.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/verify.cpython-39.pyc
index 001f9f11..6256308d 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/verify.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/__pycache__/verify.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/__init__.cpython-39.pyc
index 25d0febc..c56e1646 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/builtins.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/builtins.cpython-39.pyc
index 9c47a45c..1263086c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/builtins.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/builtins.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/collections.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/collections.cpython-39.pyc
index 1520ba9b..c255ebb4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/collections.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/collections.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/idatetime.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/idatetime.cpython-39.pyc
index 5b336f19..71ae5b70 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/idatetime.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/idatetime.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/interfaces.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/interfaces.cpython-39.pyc
index 6b9756cb..bc0d70ea 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/interfaces.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/interfaces.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/io.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/io.cpython-39.pyc
index e38a67fb..d0505c00 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/io.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/io.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/mapping.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/mapping.cpython-39.pyc
index e16af6c2..a0664d89 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/mapping.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/mapping.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/numbers.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/numbers.cpython-39.pyc
index 047b33a9..fcc66004 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/numbers.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/numbers.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/sequence.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/sequence.cpython-39.pyc
index 5cf3ae5f..b6c06f79 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/sequence.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/__pycache__/sequence.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/__init__.cpython-39.pyc
index 08420447..16a5b71c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/basemapping.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/basemapping.cpython-39.pyc
index c5bd73ae..0951893c 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/basemapping.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/basemapping.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_builtins.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_builtins.cpython-39.pyc
index aa28f1b6..e689a2f9 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_builtins.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_builtins.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_collections.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_collections.cpython-39.pyc
index 1522d21e..56b6a0e7 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_collections.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_collections.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_idatetime.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_idatetime.cpython-39.pyc
index 72033bd4..d9574f74 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_idatetime.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_idatetime.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_import_interfaces.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_import_interfaces.cpython-39.pyc
index 50cf30ab..bbdd7369 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_import_interfaces.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_import_interfaces.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_io.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_io.cpython-39.pyc
index 357b13e4..c44ebbc4 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_io.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_io.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_numbers.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_numbers.cpython-39.pyc
index d270bdb7..ec5d53cf 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_numbers.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/common/tests/__pycache__/test_numbers.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/__init__.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/__init__.cpython-39.pyc
index 5b646f4e..76e29890 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/__init__.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/__init__.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/advisory_testing.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/advisory_testing.cpython-39.pyc
index 38ff41da..5619e2f3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/advisory_testing.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/advisory_testing.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/dummy.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/dummy.cpython-39.pyc
index afaf43eb..89a712d3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/dummy.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/dummy.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/idummy.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/idummy.cpython-39.pyc
index 58664f00..20ef11ac 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/idummy.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/idummy.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/m1.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/m1.cpython-39.pyc
index cf214dde..b59c9908 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/m1.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/m1.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/odd.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/odd.cpython-39.pyc
index 0fbb6f1c..09786839 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/odd.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/odd.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_adapter.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_adapter.cpython-39.pyc
index 96192a49..a795172b 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_adapter.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_adapter.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_advice.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_advice.cpython-39.pyc
index bc45478a..ab4a3939 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_advice.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_advice.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_declarations.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_declarations.cpython-39.pyc
index 9336da6e..34c95c4a 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_declarations.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_declarations.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_document.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_document.cpython-39.pyc
index 8083935f..23cd3ea3 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_document.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_document.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_element.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_element.cpython-39.pyc
index 595a42b1..2b3ba840 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_element.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_element.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_exceptions.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_exceptions.cpython-39.pyc
index ddf451d6..bf2ed2fd 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_exceptions.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_exceptions.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_interface.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_interface.cpython-39.pyc
index 5dab7eec..21c2cf3f 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_interface.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_interface.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_interfaces.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_interfaces.cpython-39.pyc
index 12f25d36..be1490f5 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_interfaces.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_interfaces.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_odd_declarations.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_odd_declarations.cpython-39.pyc
index 8d5b3d78..3cebb5e1 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_odd_declarations.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_odd_declarations.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_registry.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_registry.cpython-39.pyc
index 06070214..2e452e66 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_registry.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_registry.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_ro.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_ro.cpython-39.pyc
index f8e6c037..43d2fc49 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_ro.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_ro.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_sorting.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_sorting.cpython-39.pyc
index 75de4912..e0a43fc0 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_sorting.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_sorting.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_verify.cpython-39.pyc b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_verify.cpython-39.pyc
index 578f6249..dded8618 100644
Binary files a/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_verify.cpython-39.pyc and b/IKEA_scraper/.venv/Lib/site-packages/zope/interface/tests/__pycache__/test_verify.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Scripts/Activate.ps1 b/IKEA_scraper/.venv/Scripts/Activate.ps1
index e06da144..35245b2f 100644
--- a/IKEA_scraper/.venv/Scripts/Activate.ps1
+++ b/IKEA_scraper/.venv/Scripts/Activate.ps1
@@ -241,7 +241,7 @@ Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH
$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH"
# SIG # Begin signature block
-# MIIc+AYJKoZIhvcNAQcCoIIc6TCCHOUCAQExDzANBglghkgBZQMEAgEFADB5Bgor
+# MIIc9wYJKoZIhvcNAQcCoIIc6DCCHOQCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAwnDYwEHaCQq0n
# 8NAvsN7H7BO7/48rXCNwrg891FS5vaCCC38wggUwMIIEGKADAgECAhAECRgbX9W7
@@ -305,95 +305,95 @@ $Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH"
# XbiAPvJ9CEWFsdkXUrjbWhvCnuZ7kqUuU5BAumI1QRbpYgZL3UA+iZXkmjbGh1ln
# 8rUhWIxbBYL4Sg2nqpB44p7CUFYkPj/MbwU2gvBV2pXjj5WaskoZtsACMv5g42BN
# oVLoRAi+ev6s07POt+JtHRIm87lTyuc8wh0swTPUwksKbLU1Zdj9CpqtzXnuVE0w
-# 50exJvRSK3Vt4g+0vigpI3qPmDdpkf9+4Mvy0XMNcqrthw20R+PkIlMxghDPMIIQ
-# ywIBATCBhjByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkw
+# 50exJvRSK3Vt4g+0vigpI3qPmDdpkf9+4Mvy0XMNcqrthw20R+PkIlMxghDOMIIQ
+# ygIBATCBhjByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkw
# FwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEy
# IEFzc3VyZWQgSUQgQ29kZSBTaWduaW5nIENBAhADPtXtoGXRuMkd/PkqbJvYMA0G
# CWCGSAFlAwQCAQUAoIGYMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisG
# AQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCwGCisGAQQBgjcCAQwxHjAcoBqAGABQ
-# AHkAdABoAG8AbgAgADMALgA5AC4ANjAvBgkqhkiG9w0BCQQxIgQgBrni4mcRv7sM
-# JHsxpROjRopOz2wuQVrJnn+lD7X7y+gwDQYJKoZIhvcNAQEBBQAEggIAKBxtIIh2
-# APcTqLi9A0nTuTBMVUsNOQNQzSI9fW92jLmXUh0OGygpOMC9GiVVRnHNGmCWt9FV
-# pMkolylPuI7wj08VFv5xvsnWo9EKM2+M0zZ1fN+/zNDvrRPKmhUTQ/fGIP9OWF3x
-# qbUCGSXrzVf/wSvYmhdBXa7pTrivIx8JOS8fhK5dqSiCmtJOPQ45ZEFNzfgB5i9e
-# 9lfNQ0wXKfKHo2zdqS19VEbuIUN8GjSlos7rGHP20aMjb0ZgKWBkYHHm4yNAgJCU
-# AJ8K+mL2+KRJDyxwH1oFjgkFKAvEHMVo8by3TigZIxmIkNlYBYx3oh7S3wgKKtNf
-# wZqX6/iDYOBmj49CxOEfoN4jtg5kg1slzbham+EPAE2pkNmg+RMkF0j9lJ5KTWrt
-# tUZvWJI17UQV0bRlbp4bYiI7OxGDD3LNU1iQo69J3q8rFc+yyplD7lJzKb7h/mH/
-# oMBa6TVHNBuSBSMGLN6xOoshcwWMo0hhfdOqyjFNgdMHO8cEwXGhwJFPimXXt+NW
-# KeKaW9i7dSzt1uNnqNXqXauk5A4upOxLceMFhmnoUwcsyxRxSFrti+uyUVMXOs1a
-# Q8YyQZFfjy5CeOjq7ohDbBRarX5JwJrkB/BYya6TA9SKfRYwIxfiwYFf6yGLrjAy
-# E0Qjhz5Np39AYpfcaWk31MeLse8NVtgVPPmhgg1+MIINegYKKwYBBAGCNwMDATGC
-# DWowgg1mBgkqhkiG9w0BBwKggg1XMIINUwIBAzEPMA0GCWCGSAFlAwQCAQUAMHgG
-# CyqGSIb3DQEJEAEEoGkEZzBlAgEBBglghkgBhv1sBwEwMTANBglghkgBZQMEAgEF
-# AAQgUVAItwy7RQCrM4tGC7KCANd0O7DgaULOpzirVGSU8QMCEQDLPomRSCQZjdG/
-# GAILYuAXGA8yMDIxMDYyODE1MzMxNVqgggo3MIIE/jCCA+agAwIBAgIQDUJK4L46
-# iP9gQCHOFADw3TANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJVUzEVMBMGA1UE
-# ChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYD
-# VQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgVGltZXN0YW1waW5nIENBMB4X
-# DTIxMDEwMTAwMDAwMFoXDTMxMDEwNjAwMDAwMFowSDELMAkGA1UEBhMCVVMxFzAV
-# BgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSAwHgYDVQQDExdEaWdpQ2VydCBUaW1lc3Rh
-# bXAgMjAyMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMLmYYRnxYr1
-# DQikRcpja1HXOhFCvQp1dU2UtAxQtSYQ/h3Ib5FrDJbnGlxI70Tlv5thzRWRYlq4
-# /2cLnGP9NmqB+in43Stwhd4CGPN4bbx9+cdtCT2+anaH6Yq9+IRdHnbJ5MZ2djpT
-# 0dHTWjaPxqPhLxs6t2HWc+xObTOKfF1FLUuxUOZBOjdWhtyTI433UCXoZObd048v
-# V7WHIOsOjizVI9r0TXhG4wODMSlKXAwxikqMiMX3MFr5FK8VX2xDSQn9JiNT9o1j
-# 6BqrW7EdMMKbaYK02/xWVLwfoYervnpbCiAvSwnJlaeNsvrWY4tOpXIc7p96AXP4
-# Gdb+DUmEvQECAwEAAaOCAbgwggG0MA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8E
-# AjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMIMEEGA1UdIAQ6MDgwNgYJYIZIAYb9
-# bAcBMCkwJwYIKwYBBQUHAgEWG2h0dHA6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzAf
-# BgNVHSMEGDAWgBT0tuEgHf4prtLkYaWyoiWyyBc1bjAdBgNVHQ4EFgQUNkSGjqS6
-# sGa+vCgtHUQ23eNqerwwcQYDVR0fBGowaDAyoDCgLoYsaHR0cDovL2NybDMuZGln
-# aWNlcnQuY29tL3NoYTItYXNzdXJlZC10cy5jcmwwMqAwoC6GLGh0dHA6Ly9jcmw0
-# LmRpZ2ljZXJ0LmNvbS9zaGEyLWFzc3VyZWQtdHMuY3JsMIGFBggrBgEFBQcBAQR5
-# MHcwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBPBggrBgEF
-# BQcwAoZDaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0U0hBMkFz
-# c3VyZWRJRFRpbWVzdGFtcGluZ0NBLmNydDANBgkqhkiG9w0BAQsFAAOCAQEASBzc
-# temaI7znGucgDo5nRv1CclF0CiNHo6uS0iXEcFm+FKDlJ4GlTRQVGQd58NEEw4bZ
-# O73+RAJmTe1ppA/2uHDPYuj1UUp4eTZ6J7fz51Kfk6ftQ55757TdQSKJ+4eiRgNO
-# /PT+t2R3Y18jUmmDgvoaU+2QzI2hF3MN9PNlOXBL85zWenvaDLw9MtAby/Vh/HUI
-# AHa8gQ74wOFcz8QRcucbZEnYIpp1FUL1LTI4gdr0YKK6tFL7XOBhJCVPst/JKahz
-# Q1HavWPWH1ub9y4bTxMd90oNcX6Xt/Q/hOvB46NJofrOp79Wz7pZdmGJX36ntI5n
-# ePk2mOHLKNpbh6aKLzCCBTEwggQZoAMCAQICEAqhJdbWMht+QeQF2jaXwhUwDQYJ
-# KoZIhvcNAQELBQAwZTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IElu
-# YzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTEkMCIGA1UEAxMbRGlnaUNlcnQg
-# QXNzdXJlZCBJRCBSb290IENBMB4XDTE2MDEwNzEyMDAwMFoXDTMxMDEwNzEyMDAw
-# MFowcjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UE
-# CxMQd3d3LmRpZ2ljZXJ0LmNvbTExMC8GA1UEAxMoRGlnaUNlcnQgU0hBMiBBc3N1
-# cmVkIElEIFRpbWVzdGFtcGluZyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-# AQoCggEBAL3QMu5LzY9/3am6gpnFOVQoV7YjSsQOB0UzURB90Pl9TWh+57ag9I2z
-# iOSXv2MhkJi/E7xX08PhfgjWahQAOPcuHjvuzKb2Mln+X2U/4Jvr40ZHBhpVfgsn
-# fsCi9aDg3iI/Dv9+lfvzo7oiPhisEeTwmQNtO4V8CdPuXciaC1TjqAlxa+DPIhAP
-# dc9xck4Krd9AOly3UeGheRTGTSQjMF287DxgaqwvB8z98OpH2YhQXv1mblZhJymJ
-# hFHmgudGUP2UKiyn5HU+upgPhH+fMRTWrdXyZMt7HgXQhBlyF/EXBu89zdZN7wZC
-# /aJTKk+FHcQdPK/P2qwQ9d2srOlW/5MCAwEAAaOCAc4wggHKMB0GA1UdDgQWBBT0
-# tuEgHf4prtLkYaWyoiWyyBc1bjAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd
-# 823IDzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUE
-# DDAKBggrBgEFBQcDCDB5BggrBgEFBQcBAQRtMGswJAYIKwYBBQUHMAGGGGh0dHA6
-# Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBDBggrBgEFBQcwAoY3aHR0cDovL2NhY2VydHMu
-# ZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENBLmNydDCBgQYDVR0f
-# BHoweDA6oDigNoY0aHR0cDovL2NybDQuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNz
-# dXJlZElEUm9vdENBLmNybDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29t
-# L0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENBLmNybDBQBgNVHSAESTBHMDgGCmCGSAGG
-# /WwAAgQwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQ
-# UzALBglghkgBhv1sBwEwDQYJKoZIhvcNAQELBQADggEBAHGVEulRh1Zpze/d2nyq
-# Y3qzeM8GN0CE70uEv8rPAwL9xafDDiBCLK938ysfDCFaKrcFNB1qrpn4J6Jmvwmq
-# YN92pDqTD/iy0dh8GWLoXoIlHsS6HHssIeLWWywUNUMEaLLbdQLgcseY1jxk5R9I
-# EBhfiThhTWJGJIdjjJFSLK8pieV4H9YLFKWA1xJHcLN11ZOFk362kmf7U2GJqPVr
-# lsD0WGkNfMgBsbkodbeZY4UijGHKeZR+WfyMD+NvtQEmtmyl7odRIeRYYJu6DC0r
-# baLEfrvEJStHAgh8Sa4TtuF8QkIoxhhWz0E0tmZdtnR79VYzIi8iNrJLokqV2PWm
-# jlIxggKGMIICggIBATCBhjByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNl
-# cnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdp
-# Q2VydCBTSEEyIEFzc3VyZWQgSUQgVGltZXN0YW1waW5nIENBAhANQkrgvjqI/2BA
-# Ic4UAPDdMA0GCWCGSAFlAwQCAQUAoIHRMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0B
-# CRABBDAcBgkqhkiG9w0BCQUxDxcNMjEwNjI4MTUzMzE1WjArBgsqhkiG9w0BCRAC
-# DDEcMBowGDAWBBTh14Ko4ZG+72vKFpG1qrSUpiSb8zAvBgkqhkiG9w0BCQQxIgQg
-# U63BaTxWvK6IjoVixdUxR2Ka9ngnAWl8TjG38EljW2IwNwYLKoZIhvcNAQkQAi8x
-# KDAmMCQwIgQgsxCQBrwK2YMHkVcp4EQDQVyD4ykrYU8mlkyNNXHs9akwDQYJKoZI
-# hvcNAQEBBQAEggEAmed9c1/5eDuMSWHIIs7oR1RWaY6OR4PjxqCkybJRvoGl8wO1
-# WmUE58PVZfTNtho02cKeP+HNsyohxFp78bBXwObFNC97vbmKR3U7ANBnu3iEE/hD
-# V3M5RD1BN4SE8yzfRlN4DB5H8rgvArWpjO9JedbVrBKrEe4FwtU8vbQhdAyFMGv5
-# ITWLQgiDJOvAOjfC014JKRgnTMgY1JntNHO1ny2dgkYYql7kO7Jbgu3h/lox/lF2
-# 1Sfonu9hDsv1121CatHRMU8B3kDeiF2P9/ifu5e0UULd0mTsMF7CIUs1/TNX0bAp
-# A6DuV3o0VVOjsfOSgQUiz/nMxVmQoWFv2sNc3w==
+# AHkAdABoAG8AbgAgADMALgA5AC4ANzAvBgkqhkiG9w0BCQQxIgQgBrni4mcRv7sM
+# JHsxpROjRopOz2wuQVrJnn+lD7X7y+gwDQYJKoZIhvcNAQEBBQAEggIAlpjGHgZ7
+# CPnoJRAJIxIBpQAvUTGheJi/uP1gtaPWRvcxP8tQvtvdTd9aMrsZnNy0gdaa5WL3
+# yYMzA0Ytzwfh0fsGuQjdx1ht/J8U++D/Lfl/w+rdbZ4mXhjnbqmTAJknEDW4NEWa
+# mwyhp+5zzADBp2VkryFpB3B7K04u8CyxXpRG6no86ROHkmsOk4j2mZUP9g/Hx4tv
+# eWjakNMPkdXZ7tWtkGNWbwOYDosvSt1aCDld5TE2o2CHOJJpi06rHRI4o4X2gNRO
+# rk8+6pH0XTS0//OMfHZRcDtRgJ7ohU/v2CDRuDw/b5NH1S1kwbdLpOoVw1bTrjsx
+# jOotJbVUuPO3ES0ZzidPbEejPz1/D/z6Yl01KfbQJ9DanTzPhQw/hCezsUUsKZBR
+# iZ1WWqZmZaT3faO/VwumIeQEa4XlGMcviEuyRye09nx3E+d9Gu8eCwm3RLD8rRDb
+# J1+GIZDkBi+Qebo3hao16666J+dezjV6HO50NkXeY/1I43A/P2nXtwqsAuaO+h/X
+# +3enzdtZx4HZa7E7wQ2F3daOV69IOliB6PCUfzPB4bqoms7c85YKEb3ZDYPX+Igf
+# EPDOQd+U3pvXLvzaJj8RL+g+s2/xaPm4KrzpKXr4SO4Voje6p0Keso/6/pErSfAf
+# OFWx+zhUKELWbCZLzdDZ76IuT0V8arqtTK+hgg19MIINeQYKKwYBBAGCNwMDATGC
+# DWkwgg1lBgkqhkiG9w0BBwKggg1WMIINUgIBAzEPMA0GCWCGSAFlAwQCAQUAMHcG
+# CyqGSIb3DQEJEAEEoGgEZjBkAgEBBglghkgBhv1sBwEwMTANBglghkgBZQMEAgEF
+# AAQgOSCrDv+oDMEj/ophQEUCc8G75r8sYGG8KKaH7Fm+WY0CEFzwQrsuwLerUKVb
+# vYKnHYEYDzIwMjEwODMwMjAzMjQwWqCCCjcwggT+MIID5qADAgECAhANQkrgvjqI
+# /2BAIc4UAPDdMA0GCSqGSIb3DQEBCwUAMHIxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
+# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xMTAvBgNV
+# BAMTKERpZ2lDZXJ0IFNIQTIgQXNzdXJlZCBJRCBUaW1lc3RhbXBpbmcgQ0EwHhcN
+# MjEwMTAxMDAwMDAwWhcNMzEwMTA2MDAwMDAwWjBIMQswCQYDVQQGEwJVUzEXMBUG
+# A1UEChMORGlnaUNlcnQsIEluYy4xIDAeBgNVBAMTF0RpZ2lDZXJ0IFRpbWVzdGFt
+# cCAyMDIxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwuZhhGfFivUN
+# CKRFymNrUdc6EUK9CnV1TZS0DFC1JhD+HchvkWsMlucaXEjvROW/m2HNFZFiWrj/
+# ZwucY/02aoH6KfjdK3CF3gIY83htvH35x20JPb5qdofpir34hF0edsnkxnZ2OlPR
+# 0dNaNo/Go+EvGzq3YdZz7E5tM4p8XUUtS7FQ5kE6N1aG3JMjjfdQJehk5t3Tjy9X
+# tYcg6w6OLNUj2vRNeEbjA4MxKUpcDDGKSoyIxfcwWvkUrxVfbENJCf0mI1P2jWPo
+# GqtbsR0wwptpgrTb/FZUvB+hh6u+elsKIC9LCcmVp42y+tZji06lchzun3oBc/gZ
+# 1v4NSYS9AQIDAQABo4IBuDCCAbQwDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQC
+# MAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwQQYDVR0gBDowODA2BglghkgBhv1s
+# BwEwKTAnBggrBgEFBQcCARYbaHR0cDovL3d3dy5kaWdpY2VydC5jb20vQ1BTMB8G
+# A1UdIwQYMBaAFPS24SAd/imu0uRhpbKiJbLIFzVuMB0GA1UdDgQWBBQ2RIaOpLqw
+# Zr68KC0dRDbd42p6vDBxBgNVHR8EajBoMDKgMKAuhixodHRwOi8vY3JsMy5kaWdp
+# Y2VydC5jb20vc2hhMi1hc3N1cmVkLXRzLmNybDAyoDCgLoYsaHR0cDovL2NybDQu
+# ZGlnaWNlcnQuY29tL3NoYTItYXNzdXJlZC10cy5jcmwwgYUGCCsGAQUFBwEBBHkw
+# dzAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tME8GCCsGAQUF
+# BzAChkNodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRTSEEyQXNz
+# dXJlZElEVGltZXN0YW1waW5nQ0EuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBIHNy1
+# 6ZojvOca5yAOjmdG/UJyUXQKI0ejq5LSJcRwWb4UoOUngaVNFBUZB3nw0QTDhtk7
+# vf5EAmZN7WmkD/a4cM9i6PVRSnh5Nnont/PnUp+Tp+1DnnvntN1BIon7h6JGA078
+# 9P63ZHdjXyNSaYOC+hpT7ZDMjaEXcw3082U5cEvznNZ6e9oMvD0y0BvL9WH8dQgA
+# dryBDvjA4VzPxBFy5xtkSdgimnUVQvUtMjiB2vRgorq0Uvtc4GEkJU+y38kpqHND
+# Udq9Y9YfW5v3LhtPEx33Sg1xfpe39D+E68Hjo0mh+s6nv1bPull2YYlffqe0jmd4
+# +TaY4cso2luHpoovMIIFMTCCBBmgAwIBAgIQCqEl1tYyG35B5AXaNpfCFTANBgkq
+# hkiG9w0BAQsFADBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5j
+# MRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBB
+# c3N1cmVkIElEIFJvb3QgQ0EwHhcNMTYwMTA3MTIwMDAwWhcNMzEwMTA3MTIwMDAw
+# WjByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
+# ExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3Vy
+# ZWQgSUQgVGltZXN0YW1waW5nIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+# CgKCAQEAvdAy7kvNj3/dqbqCmcU5VChXtiNKxA4HRTNREH3Q+X1NaH7ntqD0jbOI
+# 5Je/YyGQmL8TvFfTw+F+CNZqFAA49y4eO+7MpvYyWf5fZT/gm+vjRkcGGlV+Cyd+
+# wKL1oODeIj8O/36V+/OjuiI+GKwR5PCZA207hXwJ0+5dyJoLVOOoCXFr4M8iEA91
+# z3FyTgqt30A6XLdR4aF5FMZNJCMwXbzsPGBqrC8HzP3w6kfZiFBe/WZuVmEnKYmE
+# UeaC50ZQ/ZQqLKfkdT66mA+Ef58xFNat1fJky3seBdCEGXIX8RcG7z3N1k3vBkL9
+# olMqT4UdxB08r8/arBD13ays6Vb/kwIDAQABo4IBzjCCAcowHQYDVR0OBBYEFPS2
+# 4SAd/imu0uRhpbKiJbLIFzVuMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3z
+# bcgPMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMBMGA1UdJQQM
+# MAoGCCsGAQUFBwMIMHkGCCsGAQUFBwEBBG0wazAkBggrBgEFBQcwAYYYaHR0cDov
+# L29jc3AuZGlnaWNlcnQuY29tMEMGCCsGAQUFBzAChjdodHRwOi8vY2FjZXJ0cy5k
+# aWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3J0MIGBBgNVHR8E
+# ejB4MDqgOKA2hjRodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1
+# cmVkSURSb290Q0EuY3JsMDqgOKA2hjRodHRwOi8vY3JsMy5kaWdpY2VydC5jb20v
+# RGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3JsMFAGA1UdIARJMEcwOAYKYIZIAYb9
+# bAACBDAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BT
+# MAsGCWCGSAGG/WwHATANBgkqhkiG9w0BAQsFAAOCAQEAcZUS6VGHVmnN793afKpj
+# erN4zwY3QITvS4S/ys8DAv3Fp8MOIEIsr3fzKx8MIVoqtwU0HWqumfgnoma/Capg
+# 33akOpMP+LLR2HwZYuhegiUexLoceywh4tZbLBQ1QwRostt1AuByx5jWPGTlH0gQ
+# GF+JOGFNYkYkh2OMkVIsrymJ5Xgf1gsUpYDXEkdws3XVk4WTfraSZ/tTYYmo9WuW
+# wPRYaQ18yAGxuSh1t5ljhSKMYcp5lH5Z/IwP42+1ASa2bKXuh1Eh5Fhgm7oMLStt
+# osR+u8QlK0cCCHxJrhO24XxCQijGGFbPQTS2Zl22dHv1VjMiLyI2skuiSpXY9aaO
+# UjGCAoYwggKCAgEBMIGGMHIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2Vy
+# dCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xMTAvBgNVBAMTKERpZ2lD
+# ZXJ0IFNIQTIgQXNzdXJlZCBJRCBUaW1lc3RhbXBpbmcgQ0ECEA1CSuC+Ooj/YEAh
+# zhQA8N0wDQYJYIZIAWUDBAIBBQCggdEwGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJ
+# EAEEMBwGCSqGSIb3DQEJBTEPFw0yMTA4MzAyMDMyNDBaMCsGCyqGSIb3DQEJEAIM
+# MRwwGjAYMBYEFOHXgqjhkb7va8oWkbWqtJSmJJvzMC8GCSqGSIb3DQEJBDEiBCBI
+# G7lS/r0RCENJotqNy8WPsrW/fmVFip107NYjeJ0Q0TA3BgsqhkiG9w0BCRACLzEo
+# MCYwJDAiBCCzEJAGvArZgweRVyngRANBXIPjKSthTyaWTI01cez1qTANBgkqhkiG
+# 9w0BAQEFAASCAQBLFNmzEWXnvby6UBfPXhcIQetEVjem6zU9lbSj5MXY7ZJDCtV/
+# cdI6SWEsz1uZyzNlHvBvctGK03lZcWcwa0PrGokLG2v3zuU1MAj2MJVuunQ5GjaI
+# UoWDeROFwEBtqKnR+hTB2GV/pOb1nEHR6xm4KvMao0WcnkQhVL3LXVVawDSJIrA8
+# 8I5XyqZx3q6jRFVAuIlM6HLrQiaLRpP9j25/1Pin8zLd0e65jaAufHQW6V7vG3GI
+# C9d89LkmDN7uftGjXS5LKiC4EYMYKK8L3/ikBW70mATlDXZfLBoEdAv1rUoIXnf2
+# 7AxXiMi4hXF2JsMk/J2h9lfvENROxXGIStD1
# SIG # End signature block
diff --git a/IKEA_scraper/.venv/Scripts/__pycache__/bottle.cpython-39.pyc b/IKEA_scraper/.venv/Scripts/__pycache__/bottle.cpython-39.pyc
index 32b6da7f..8563fc0d 100644
Binary files a/IKEA_scraper/.venv/Scripts/__pycache__/bottle.cpython-39.pyc and b/IKEA_scraper/.venv/Scripts/__pycache__/bottle.cpython-39.pyc differ
diff --git a/IKEA_scraper/.venv/Scripts/activate b/IKEA_scraper/.venv/Scripts/activate
index 1793b6f4..868f87aa 100644
--- a/IKEA_scraper/.venv/Scripts/activate
+++ b/IKEA_scraper/.venv/Scripts/activate
@@ -37,7 +37,7 @@ deactivate () {
# unset irrelevant variables
deactivate nondestructive
-VIRTUAL_ENV="D:\py\random\School\IKEA_scraper\.venv"
+VIRTUAL_ENV="D:\Pyhton\random\School\IKEA_scraper\.venv"
export VIRTUAL_ENV
_OLD_VIRTUAL_PATH="$PATH"
diff --git a/IKEA_scraper/.venv/Scripts/activate.bat b/IKEA_scraper/.venv/Scripts/activate.bat
index fb30c424..b2b40b91 100644
--- a/IKEA_scraper/.venv/Scripts/activate.bat
+++ b/IKEA_scraper/.venv/Scripts/activate.bat
@@ -8,7 +8,7 @@ if defined _OLD_CODEPAGE (
"%SystemRoot%\System32\chcp.com" 65001 > nul
)
-set VIRTUAL_ENV=D:\py\random\School\IKEA_scraper\.venv
+set VIRTUAL_ENV=D:\Pyhton\random\School\IKEA_scraper\.venv
if not defined PROMPT set PROMPT=$P$G
diff --git a/IKEA_scraper/.venv/Scripts/bottle.py b/IKEA_scraper/.venv/Scripts/bottle.py
index 1a9542a4..1c089d4e 100644
--- a/IKEA_scraper/.venv/Scripts/bottle.py
+++ b/IKEA_scraper/.venv/Scripts/bottle.py
@@ -1,4 +1,4 @@
-#!d:\py\random\school\ikea_scraper\.venv\scripts\python.exe
+#!D:\Pyhton\random\School\IKEA_scraper\.venv\Scripts\python.exe
# -*- coding: utf-8 -*-
"""
Bottle is a fast and simple micro-framework for small web applications. It
diff --git a/IKEA_scraper/.venv/Scripts/futurize-script.py b/IKEA_scraper/.venv/Scripts/futurize-script.py
index 0445b057..d146f3db 100644
--- a/IKEA_scraper/.venv/Scripts/futurize-script.py
+++ b/IKEA_scraper/.venv/Scripts/futurize-script.py
@@ -1,4 +1,4 @@
-#!d:\py\random\school\ikea_scraper\.venv\scripts\python.exe
+#!D:\Pyhton\random\School\IKEA_scraper\.venv\Scripts\python.exe
# EASY-INSTALL-ENTRY-SCRIPT: 'future==0.18.2','console_scripts','futurize'
import re
import sys
diff --git a/IKEA_scraper/.venv/Scripts/normalizer.exe b/IKEA_scraper/.venv/Scripts/normalizer.exe
index 2e90c1a5..16dcb1c6 100644
Binary files a/IKEA_scraper/.venv/Scripts/normalizer.exe and b/IKEA_scraper/.venv/Scripts/normalizer.exe differ
diff --git a/IKEA_scraper/.venv/Scripts/pasteurize-script.py b/IKEA_scraper/.venv/Scripts/pasteurize-script.py
index 5a76d018..34a9afb9 100644
--- a/IKEA_scraper/.venv/Scripts/pasteurize-script.py
+++ b/IKEA_scraper/.venv/Scripts/pasteurize-script.py
@@ -1,4 +1,4 @@
-#!d:\py\random\school\ikea_scraper\.venv\scripts\python.exe
+#!D:\Pyhton\random\School\IKEA_scraper\.venv\Scripts\python.exe
# EASY-INSTALL-ENTRY-SCRIPT: 'future==0.18.2','console_scripts','pasteurize'
import re
import sys
diff --git a/IKEA_scraper/.venv/Scripts/pip.exe b/IKEA_scraper/.venv/Scripts/pip.exe
index 176cf8aa..886c38bd 100644
Binary files a/IKEA_scraper/.venv/Scripts/pip.exe and b/IKEA_scraper/.venv/Scripts/pip.exe differ
diff --git a/IKEA_scraper/.venv/Scripts/pip3.9.exe b/IKEA_scraper/.venv/Scripts/pip3.9.exe
index 176cf8aa..886c38bd 100644
Binary files a/IKEA_scraper/.venv/Scripts/pip3.9.exe and b/IKEA_scraper/.venv/Scripts/pip3.9.exe differ
diff --git a/IKEA_scraper/.venv/Scripts/pip3.exe b/IKEA_scraper/.venv/Scripts/pip3.exe
index 176cf8aa..886c38bd 100644
Binary files a/IKEA_scraper/.venv/Scripts/pip3.exe and b/IKEA_scraper/.venv/Scripts/pip3.exe differ
diff --git a/IKEA_scraper/.venv/Scripts/python.exe b/IKEA_scraper/.venv/Scripts/python.exe
index 7885ec4f..75eb381e 100644
Binary files a/IKEA_scraper/.venv/Scripts/python.exe and b/IKEA_scraper/.venv/Scripts/python.exe differ
diff --git a/IKEA_scraper/.venv/Scripts/pythonw.exe b/IKEA_scraper/.venv/Scripts/pythonw.exe
index 5ffbf4db..910fc6b9 100644
Binary files a/IKEA_scraper/.venv/Scripts/pythonw.exe and b/IKEA_scraper/.venv/Scripts/pythonw.exe differ
diff --git a/IKEA_scraper/.venv/pyvenv.cfg b/IKEA_scraper/.venv/pyvenv.cfg
index 4ea9ff83..c74066a9 100644
--- a/IKEA_scraper/.venv/pyvenv.cfg
+++ b/IKEA_scraper/.venv/pyvenv.cfg
@@ -1,3 +1,3 @@
home = C:\Users\User\AppData\Local\Programs\Python\Python39
include-system-site-packages = false
-version = 3.9.6
+version = 3.9.7
diff --git a/IKEA_scraper/__pycache__/ikea.cpython-39.pyc b/IKEA_scraper/__pycache__/ikea.cpython-39.pyc
index e113f58c..ab435f4b 100644
Binary files a/IKEA_scraper/__pycache__/ikea.cpython-39.pyc and b/IKEA_scraper/__pycache__/ikea.cpython-39.pyc differ
diff --git a/IKEA_scraper/ikea.py b/IKEA_scraper/ikea.py
index 7ffceb60..079284ad 100644
--- a/IKEA_scraper/ikea.py
+++ b/IKEA_scraper/ikea.py
@@ -48,7 +48,7 @@ class IKEA:
prices.append(cropped_price[:cropped_price.find("€") + 1])
combined_list = [i + " - " + j for i, j in zip(names, prices)]
- output = "\n".join(str(elem) for elem in combined_list)
+ output = " ".join(str(elem) for elem in combined_list)
return output
@@ -78,14 +78,14 @@ mirrors = IKEA('kitchen/kitchen-decoration/mirrors')
office_chairs = IKEA('home-office/work-seating-range/office-chairs')
office_desks_and_tables = IKEA('home-office/desks/office-desks-and-tables')
open_shelving_units = IKEA('living-room/shelving-units-systems/open-shelving-units')
-system_wardrobes = IKEA('ikea-for-business/retail/system-wardrobes')
+pax_wardrobes = IKEA('ikea-for-business/retail/system-wardrobes')
pendant_lamps = IKEA('ikea-for-business/retail/pendant-lamps')
pillows = IKEA('bedroom/bedding/pillows')
pots = IKEA('kitchen/cookware-and-dinnerware/pots')
quilt_covers_and_pillow_cases = IKEA('bedroom/bedding/quilt-covers-and-pillow-cases')
quilts = IKEA('bedroom/bedding/quilts')
rugs = IKEA('living-room/home-furnishing-rugs/rugs')
-sheets_and_pillow_case = IKEA('bedroom/bedding/sheets-and-pillow-cases')
+sheets_and_pillow_cases = IKEA('bedroom/bedding/sheets-and-pillow-cases')
sofa_beds_and_chair_beds = IKEA('bedroom/beds-and-sofa-beds/sofa-beds-chair-beds')
sofa_tables = IKEA('living-room/coffee-side-tables/sofa-tables')
solitaire_cabinets = IKEA('living-room/solitaire-cabinets/solitaire-cabinets')
diff --git a/IKEA_scraper/main.py b/IKEA_scraper/main.py
index 11f9ae52..02b31f3f 100644
--- a/IKEA_scraper/main.py
+++ b/IKEA_scraper/main.py
@@ -1,4 +1,57 @@
-import eel as eel
+import eel
+from ikea import *
eel.init('web')
-eel.start('web\index.html', size=(500, 500))
\ No newline at end of file
+
+
+@eel.expose
+def call_in_js(product):
+ product_names = {
+ "armchairs": arm_chairs,
+ "bathroom furniture": bathroom_furniture,
+ "bathroom lightning": bathroom_lighting,
+ "bed frames": bed_frames,
+ "bookcases": bookcases,
+ "boxes and baskets": boxes_and_baskets,
+ "candles": candles,
+ "ceiling lamps and spotlight": ceiling_lamps_and_spotlights,
+ "chairs and benches": chairs_and_benches,
+ "chest of drawers": chest_of_drawers,
+ "children's storage furniture": children_storage_furniture,
+ "curtains": curtains,
+ "day beds": day_beds,
+ "dining tables": dining_tables,
+ "dinnerware and serving": dinnerware_and_serving,
+ "glasses": glasses,
+ "home desks": home_desks,
+ "interior organisers": interior_organisers,
+ "kitchen interior organisers": kitchen_interior_organisers,
+ "light bulbs": light_bulbs,
+ "mattresses": mattresses,
+ "mirrors": mirrors,
+ "office chairs": office_chairs,
+ "office desks and tables": office_desks_and_tables,
+ "open shelving units": open_shelving_units,
+ "pax wardrobes": pax_wardrobes,
+ "pendant lamps": pendant_lamps,
+ "pillows": pillows,
+ "pots": pots,
+ "quilt covers and pillow cases": quilt_covers_and_pillow_cases,
+ "quilts": quilts,
+ "rugs": rugs,
+ "sheets and pillow cases": sheets_and_pillow_cases,
+ "sofa beds and chair beds": sofa_beds_and_chair_beds,
+ "sofa tables": sofa_tables,
+ "solitaire cabinets": solitaire_cabinets,
+ "solitaire wardrobes": solitaire_wardrobes,
+ "system cabinets": system_cabinets,
+ "table lamps": table_lamps,
+ "towels": towels,
+ "toys for small children": toys_for_small_children,
+ "tv benches": tv_benches
+ }
+
+ return product_names.get(product.strip().lower()).get_data()
+
+
+eel.start('index.html', size=(500, 500))
diff --git a/IKEA_scraper/web/index.html b/IKEA_scraper/web/index.html
index a0d8616c..21031171 100644
--- a/IKEA_scraper/web/index.html
+++ b/IKEA_scraper/web/index.html
@@ -5,8 +5,67 @@
IKEA scraper
+
+
- test
+
+
+
+
+
+
+