summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-10 08:22:19 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-10 08:22:19 +0000
commit69662a314a80a91a9514dd2f48c5f68dcf9b4df0 (patch)
treeffc337891506860b5a2d4cfb2392c3b4fd48be1a
parentb2e4ebcc70c3fcd90f41764cdb906bafa48bfa15 (diff)
automatic import of python-pymongo-inmemoryopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-pymongo-inmemory.spec580
-rw-r--r--sources1
3 files changed, 582 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..e181317 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/pymongo_inmemory-0.2.11.tar.gz
diff --git a/python-pymongo-inmemory.spec b/python-pymongo-inmemory.spec
new file mode 100644
index 0000000..f3d567e
--- /dev/null
+++ b/python-pymongo-inmemory.spec
@@ -0,0 +1,580 @@
+%global _empty_manifest_terminate_build 0
+Name: python-pymongo-inmemory
+Version: 0.2.11
+Release: 1
+Summary: A mongo mocking library with an ephemeral MongoDB running in memory.
+License: MIT
+URL: https://github.com/kaizendorks/pymongo_inmemory
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/a0/41/d03018a77b9ef25dcff2befe142be8aec5ef413bafb3133999e71b260727/pymongo_inmemory-0.2.11.tar.gz
+BuildArch: noarch
+
+Requires: python3-pymongo
+
+%description
+[ [PyPI](https://pypi.org/project/pymongo-inmemory/) ][ [GitHub](https://github.com/kaizendorks/pymongo_inmemory) ][ [BETA Docs](https://kaizendorks.github.io/pymongo_inmemory/)]
+
+# pymongo_inmemory
+A mongo mocking library with an ephemeral MongoDB running in memory.
+
+## What's new?
+### v0.2.10
+* Updated MongoDB version list.
+* With 6.0 versions, there is support of MacOS running on ARM arch.
+
+## Installation
+```bash
+pip install pymongo-inmemory
+```
+
+## Usage
+### Configure
+There are several ways you can configure `pymongo_inmemory`.
+
+1. Insert a new section titled `pymongo_inmemory` to your project's `setup.cfg`
+version you want to spin up:
+ ```ini
+ [pymongo_inmemory]
+ operating_system = ubuntu
+ os_version = 18
+ mongod_port = 27019
+ ```
+2. Define an `ALL_CAPS` environment variables with prefix `PYMONGOIM__` (attention to trailing double
+ underscores.) For instance, to override the port, set up an environment variable
+ `PYMONGOIM__MONGOD_PORT`.
+
+### Import and use
+`pymongo_inmemory` wraps the client class `MongoClient` that comes from `pymongo` and configures with an ephemeral MongoDB server.
+You can import this `MongoClient` from `pymongo_inmemory` instead of `pymongo` and use it to perform tests:
+
+```python
+from pymongo_inmemory import MongoClient
+
+client = MongoClient() # No need to provide host
+db = client['testdb']
+collection = db['test-collection']
+# etc., etc.
+client.close()
+
+# Also usable with context manager
+with MongoClient() as client:
+ # do stuff
+```
+
+## Configuration
+| Config param | Description | Optional? | Default |
+|--------------------|-------------------------------------------|-----------|--------------------------------------------------|
+| `mongo_version` | Which MongoD version to download and use. | Yes | Latest for the OS |
+| `mongod_port` | Override port preference. | Yes | Automatically picked between `27017` and `28000` after testing availability |
+| `operating_system` | This makes sense for Linux setting, where there are several flavours | Yes | Automatically determined (Generic for Linux)* |
+| `os_version` | If an operating system has several versions use this parameter to select one | Yes | Latest versoin of the OS will be selected from the list |
+| `download_url` | If set, it won't attempt to determine which MongoDB to download. However there won't be a fallback either.| Yes | Automatically determined from given parameters and using [internal URL bank](pymongo_inmemory/downloader/_patterns.py)**|
+| `ignore_cache` | Even if there is a downloaded version in the cache, download it again. | Yes | False |
+||||
+
+* ****Note 1:*** Generic Linux version offering for MongoDB ends with version **4.0.23**. If the operating system is just `linux` and if selected MongoDB version is higher, it will default to `4.0.23`.
+* *****Note 2:*** URL bank is filled with URLs collected from [release list](https://www.mongodb.com/download-center/community/releases) and [archived released list](https://www.mongodb.com/download-center/community/releases/archive), so if a version is not in the bank you can use the same list to provide an official download link.
+
+
+## Available MongoDB versions
+There is an internal [URL bank](pymongo_inmemory/downloader/_patterns.py) that is filled with URLs collected from
+* [release list](https://www.mongodb.com/download-center/community/releases) and
+* [archived released list](https://www.mongodb.com/download-center/community/releases/archive)
+
+Below table is a summary of possible setting for `operating_system`, `os_version` and available MongoDB versions for
+them to set as `mongo_version` at `major.minor` level.
+
+Note that, not all `major.minor.patch` level is available for all OS versions. For exact patch level range, either see
+release pages of MongoDB or have a look at the internal [URL bank](pymongo_inmemory/downloader/_patterns.py).
+
+|| `operating_system` | `os_version` | MongoDB versions (`major.minor`)|
+|-|-|-|-|
+||`osx`|`generic`*| `2.6`, `3.0`, `3.2`, `3.4`, `3.6`, `4.0`, `4.2`, `4.4`, `5.0`, `6.0`|
+|**NEW**|`macos`|`arm`| `6.0`|
+||`windows`|`generic`*| `2.6`, `3.0`, `3.2`, `3.4`, `3.6`, `4.0`, `4.2`, `4.4`, `5.0`|
+||`linux`|`generic`*| `2.6`, `3.0`, `3.2`, `3.4`, `3.6`, `4.0`|
+||`amazon`|`1`| `3.0`, `3.2`, `3.4`, `3.6`, `4.0`, `4.2`, `4.4`, `5.0`|
+||`amazon`|`2`| `3.6`, `4.0`, `4.2`, `4.4`, `5.0`, `6.0`|
+||`debian`|`7`| `3.0`, `3.2`, `3.4`, `3.6`|
+||`debian`|`8`| `3.2`, `3.4`, `3.6`, `4.0`|
+||`debian`|`9`| `3.6`, `4.0`, `4.2`, `4.4`, `4.5`, `4.6`, `5.0`|
+||`debian`|`10`| `4.2`, `4.4`, `4.5`, `4.6`, `5.0`, `6.0`|
+||`debian`|`11`| `5.0`, `6.0`|
+||`rhel`|`5`| `3.0`, `3.2`|
+||`rhel`|`6`| `3.0`, `3.2`, `3.4`, `3.6`, `4.0`, `4.2`, `4.4`|
+||`rhel`|`7`| `3.0`, `3.2`, `3.4`, `3.6`, `4.0`, `4.2`, `4.4`, `5.0`, `6.0`|
+||`rhel`|`8`| `3.6`, `4.0`, `4.2`, `4.4`, `5.0`, `6.0`|
+||`suse`|`11`| `3.0`, `3.2`, `3.4`, `3.6`|
+||`suse`|`12`| `3.2`, `3.4`, `3.6`, `4.0`, `4.2`, `4.4`, `5.0`, `6.0`|
+||`suse`|`15`| `4.2`, `4.4`, `5.0`, `6.0`|
+||`ubuntu`|`12`| `3.0`, `3.2`, `3.4`, `3.6`|
+||`ubuntu`|`14`| `3.0`, `3.2`, `3.4`, `3.6`, `4.0`|
+||`ubuntu`|`16`| `3.2`, `3.4`, `3.6`, `4.0`, `4.2`, `4.4`|
+||`ubuntu`|`18`| `3.6`, `4.0`, `4.2`, `4.4`, `5.0`|
+||`ubuntu`|`20`| `4.4`, `5.0`|
+||`sunos`|`5`| `2.6`, `3.0`, `3.2`, `3.4`|
+|||||
+
+****Note:*** No need to specify `generic`, as it will be chosen automatically since it's the only version for that OS.
+
+### How do we determine which MongoDB to download?
+There are two (three if it's a Linux flavour) bits of information we need to determine a MongoDB:
+operating system and MongoDB version.
+
+**Note:** You can always set `download_url` to provide an exact URL to download from.
+
+#### Operating System detection
+Python has limited tools in its standard library to determine the exact version of the operating
+system and operating system version. `pymongo_inmemory` basically reads output of [`platform.system()`](platform.system())
+to determine if underlying OS is Linux, MacOS or Windows.
+
+For Windows and MacOS, it will download only one flavour of OS for a particular MongoDB version (64bit and, for Windows, Windows Server version if there is one.)
+However, Linux has many flavours. Up to MongoDB `4.0.23`, a MongoDB for a generic Linux OS can still be downloaded, but for later
+versions of MongoDB, there are no such builds, hence you will need to explicitly set `operating_system`
+parameter if you want to use MongoDB versions higher than that.
+
+Operating system detection behaviour of `pymongo_inmemory` might change in the future, if there is a demand for more **magic**,
+but for now we are keeping things simple.
+
+#### Deciding MongoDB version
+* If no version is provided, highest version of MongoDB for the operating system is selected.
+* If only a **major** version is given, like `4`, then highest `minor.patch` version is selected, like 4.4.4.
+* If only **major.minor** version is given, like `4.0`, then highest `patch` version is selected, like 4.0.23.
+* If exact **major.minor.patch** version is given, like `4.0.22`, then that version is selected.
+* If patch version is not found. like `4.0.50`, highest `patch` version is selected, like `4.0.23`.
+* If minor version is not found. like `3.90.50`, highest `minor.patch` version is selected, like `3.6.22`.
+* If major version is not found. like `1.0.0`, highest `major.minor.patch` version is selected, like `4.4.4`.
+
+## Supported Python versions
+Since few development tools only support Python version 3.6 and above, all testing and tooling done
+from that version up.
+
+This also limits the minimum Python version of tested features. However there shouldn't
+be a hard limitation to use Python 3.5. We recommend upgrading older Python versions than that.
+
+## Development
+Project is set up to develop with [poetry](https://python-poetry.org/). We rely on
+[pyenv](https://github.com/pyenv/pyenv#installation) to maintain the minimum supported
+Python version.
+
+After installing `pyenv`, `poetry`, and cloning the repo, create the shell and install
+all package requirements:
+
+```bash
+pyenv install --skip-existing
+poetry install --no-root
+poetry shell
+```
+
+Run the tests:
+```bash
+pytest
+```
+
+If on NIX systems you can run further tests:
+```bash
+bash tests/integrity/test_integrity.sh
+```
+
+### Adding a new MongoDB version
+Follow the guide [here](pymongo_inmemory/downloader/README.md).
+
+### See how you can wet your feet
+Check out [good first issues](https://github.com/kaizendorks/pymongo_inmemory/contribute).
+
+
+%package -n python3-pymongo-inmemory
+Summary: A mongo mocking library with an ephemeral MongoDB running in memory.
+Provides: python-pymongo-inmemory
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-pymongo-inmemory
+[ [PyPI](https://pypi.org/project/pymongo-inmemory/) ][ [GitHub](https://github.com/kaizendorks/pymongo_inmemory) ][ [BETA Docs](https://kaizendorks.github.io/pymongo_inmemory/)]
+
+# pymongo_inmemory
+A mongo mocking library with an ephemeral MongoDB running in memory.
+
+## What's new?
+### v0.2.10
+* Updated MongoDB version list.
+* With 6.0 versions, there is support of MacOS running on ARM arch.
+
+## Installation
+```bash
+pip install pymongo-inmemory
+```
+
+## Usage
+### Configure
+There are several ways you can configure `pymongo_inmemory`.
+
+1. Insert a new section titled `pymongo_inmemory` to your project's `setup.cfg`
+version you want to spin up:
+ ```ini
+ [pymongo_inmemory]
+ operating_system = ubuntu
+ os_version = 18
+ mongod_port = 27019
+ ```
+2. Define an `ALL_CAPS` environment variables with prefix `PYMONGOIM__` (attention to trailing double
+ underscores.) For instance, to override the port, set up an environment variable
+ `PYMONGOIM__MONGOD_PORT`.
+
+### Import and use
+`pymongo_inmemory` wraps the client class `MongoClient` that comes from `pymongo` and configures with an ephemeral MongoDB server.
+You can import this `MongoClient` from `pymongo_inmemory` instead of `pymongo` and use it to perform tests:
+
+```python
+from pymongo_inmemory import MongoClient
+
+client = MongoClient() # No need to provide host
+db = client['testdb']
+collection = db['test-collection']
+# etc., etc.
+client.close()
+
+# Also usable with context manager
+with MongoClient() as client:
+ # do stuff
+```
+
+## Configuration
+| Config param | Description | Optional? | Default |
+|--------------------|-------------------------------------------|-----------|--------------------------------------------------|
+| `mongo_version` | Which MongoD version to download and use. | Yes | Latest for the OS |
+| `mongod_port` | Override port preference. | Yes | Automatically picked between `27017` and `28000` after testing availability |
+| `operating_system` | This makes sense for Linux setting, where there are several flavours | Yes | Automatically determined (Generic for Linux)* |
+| `os_version` | If an operating system has several versions use this parameter to select one | Yes | Latest versoin of the OS will be selected from the list |
+| `download_url` | If set, it won't attempt to determine which MongoDB to download. However there won't be a fallback either.| Yes | Automatically determined from given parameters and using [internal URL bank](pymongo_inmemory/downloader/_patterns.py)**|
+| `ignore_cache` | Even if there is a downloaded version in the cache, download it again. | Yes | False |
+||||
+
+* ****Note 1:*** Generic Linux version offering for MongoDB ends with version **4.0.23**. If the operating system is just `linux` and if selected MongoDB version is higher, it will default to `4.0.23`.
+* *****Note 2:*** URL bank is filled with URLs collected from [release list](https://www.mongodb.com/download-center/community/releases) and [archived released list](https://www.mongodb.com/download-center/community/releases/archive), so if a version is not in the bank you can use the same list to provide an official download link.
+
+
+## Available MongoDB versions
+There is an internal [URL bank](pymongo_inmemory/downloader/_patterns.py) that is filled with URLs collected from
+* [release list](https://www.mongodb.com/download-center/community/releases) and
+* [archived released list](https://www.mongodb.com/download-center/community/releases/archive)
+
+Below table is a summary of possible setting for `operating_system`, `os_version` and available MongoDB versions for
+them to set as `mongo_version` at `major.minor` level.
+
+Note that, not all `major.minor.patch` level is available for all OS versions. For exact patch level range, either see
+release pages of MongoDB or have a look at the internal [URL bank](pymongo_inmemory/downloader/_patterns.py).
+
+|| `operating_system` | `os_version` | MongoDB versions (`major.minor`)|
+|-|-|-|-|
+||`osx`|`generic`*| `2.6`, `3.0`, `3.2`, `3.4`, `3.6`, `4.0`, `4.2`, `4.4`, `5.0`, `6.0`|
+|**NEW**|`macos`|`arm`| `6.0`|
+||`windows`|`generic`*| `2.6`, `3.0`, `3.2`, `3.4`, `3.6`, `4.0`, `4.2`, `4.4`, `5.0`|
+||`linux`|`generic`*| `2.6`, `3.0`, `3.2`, `3.4`, `3.6`, `4.0`|
+||`amazon`|`1`| `3.0`, `3.2`, `3.4`, `3.6`, `4.0`, `4.2`, `4.4`, `5.0`|
+||`amazon`|`2`| `3.6`, `4.0`, `4.2`, `4.4`, `5.0`, `6.0`|
+||`debian`|`7`| `3.0`, `3.2`, `3.4`, `3.6`|
+||`debian`|`8`| `3.2`, `3.4`, `3.6`, `4.0`|
+||`debian`|`9`| `3.6`, `4.0`, `4.2`, `4.4`, `4.5`, `4.6`, `5.0`|
+||`debian`|`10`| `4.2`, `4.4`, `4.5`, `4.6`, `5.0`, `6.0`|
+||`debian`|`11`| `5.0`, `6.0`|
+||`rhel`|`5`| `3.0`, `3.2`|
+||`rhel`|`6`| `3.0`, `3.2`, `3.4`, `3.6`, `4.0`, `4.2`, `4.4`|
+||`rhel`|`7`| `3.0`, `3.2`, `3.4`, `3.6`, `4.0`, `4.2`, `4.4`, `5.0`, `6.0`|
+||`rhel`|`8`| `3.6`, `4.0`, `4.2`, `4.4`, `5.0`, `6.0`|
+||`suse`|`11`| `3.0`, `3.2`, `3.4`, `3.6`|
+||`suse`|`12`| `3.2`, `3.4`, `3.6`, `4.0`, `4.2`, `4.4`, `5.0`, `6.0`|
+||`suse`|`15`| `4.2`, `4.4`, `5.0`, `6.0`|
+||`ubuntu`|`12`| `3.0`, `3.2`, `3.4`, `3.6`|
+||`ubuntu`|`14`| `3.0`, `3.2`, `3.4`, `3.6`, `4.0`|
+||`ubuntu`|`16`| `3.2`, `3.4`, `3.6`, `4.0`, `4.2`, `4.4`|
+||`ubuntu`|`18`| `3.6`, `4.0`, `4.2`, `4.4`, `5.0`|
+||`ubuntu`|`20`| `4.4`, `5.0`|
+||`sunos`|`5`| `2.6`, `3.0`, `3.2`, `3.4`|
+|||||
+
+****Note:*** No need to specify `generic`, as it will be chosen automatically since it's the only version for that OS.
+
+### How do we determine which MongoDB to download?
+There are two (three if it's a Linux flavour) bits of information we need to determine a MongoDB:
+operating system and MongoDB version.
+
+**Note:** You can always set `download_url` to provide an exact URL to download from.
+
+#### Operating System detection
+Python has limited tools in its standard library to determine the exact version of the operating
+system and operating system version. `pymongo_inmemory` basically reads output of [`platform.system()`](platform.system())
+to determine if underlying OS is Linux, MacOS or Windows.
+
+For Windows and MacOS, it will download only one flavour of OS for a particular MongoDB version (64bit and, for Windows, Windows Server version if there is one.)
+However, Linux has many flavours. Up to MongoDB `4.0.23`, a MongoDB for a generic Linux OS can still be downloaded, but for later
+versions of MongoDB, there are no such builds, hence you will need to explicitly set `operating_system`
+parameter if you want to use MongoDB versions higher than that.
+
+Operating system detection behaviour of `pymongo_inmemory` might change in the future, if there is a demand for more **magic**,
+but for now we are keeping things simple.
+
+#### Deciding MongoDB version
+* If no version is provided, highest version of MongoDB for the operating system is selected.
+* If only a **major** version is given, like `4`, then highest `minor.patch` version is selected, like 4.4.4.
+* If only **major.minor** version is given, like `4.0`, then highest `patch` version is selected, like 4.0.23.
+* If exact **major.minor.patch** version is given, like `4.0.22`, then that version is selected.
+* If patch version is not found. like `4.0.50`, highest `patch` version is selected, like `4.0.23`.
+* If minor version is not found. like `3.90.50`, highest `minor.patch` version is selected, like `3.6.22`.
+* If major version is not found. like `1.0.0`, highest `major.minor.patch` version is selected, like `4.4.4`.
+
+## Supported Python versions
+Since few development tools only support Python version 3.6 and above, all testing and tooling done
+from that version up.
+
+This also limits the minimum Python version of tested features. However there shouldn't
+be a hard limitation to use Python 3.5. We recommend upgrading older Python versions than that.
+
+## Development
+Project is set up to develop with [poetry](https://python-poetry.org/). We rely on
+[pyenv](https://github.com/pyenv/pyenv#installation) to maintain the minimum supported
+Python version.
+
+After installing `pyenv`, `poetry`, and cloning the repo, create the shell and install
+all package requirements:
+
+```bash
+pyenv install --skip-existing
+poetry install --no-root
+poetry shell
+```
+
+Run the tests:
+```bash
+pytest
+```
+
+If on NIX systems you can run further tests:
+```bash
+bash tests/integrity/test_integrity.sh
+```
+
+### Adding a new MongoDB version
+Follow the guide [here](pymongo_inmemory/downloader/README.md).
+
+### See how you can wet your feet
+Check out [good first issues](https://github.com/kaizendorks/pymongo_inmemory/contribute).
+
+
+%package help
+Summary: Development documents and examples for pymongo-inmemory
+Provides: python3-pymongo-inmemory-doc
+%description help
+[ [PyPI](https://pypi.org/project/pymongo-inmemory/) ][ [GitHub](https://github.com/kaizendorks/pymongo_inmemory) ][ [BETA Docs](https://kaizendorks.github.io/pymongo_inmemory/)]
+
+# pymongo_inmemory
+A mongo mocking library with an ephemeral MongoDB running in memory.
+
+## What's new?
+### v0.2.10
+* Updated MongoDB version list.
+* With 6.0 versions, there is support of MacOS running on ARM arch.
+
+## Installation
+```bash
+pip install pymongo-inmemory
+```
+
+## Usage
+### Configure
+There are several ways you can configure `pymongo_inmemory`.
+
+1. Insert a new section titled `pymongo_inmemory` to your project's `setup.cfg`
+version you want to spin up:
+ ```ini
+ [pymongo_inmemory]
+ operating_system = ubuntu
+ os_version = 18
+ mongod_port = 27019
+ ```
+2. Define an `ALL_CAPS` environment variables with prefix `PYMONGOIM__` (attention to trailing double
+ underscores.) For instance, to override the port, set up an environment variable
+ `PYMONGOIM__MONGOD_PORT`.
+
+### Import and use
+`pymongo_inmemory` wraps the client class `MongoClient` that comes from `pymongo` and configures with an ephemeral MongoDB server.
+You can import this `MongoClient` from `pymongo_inmemory` instead of `pymongo` and use it to perform tests:
+
+```python
+from pymongo_inmemory import MongoClient
+
+client = MongoClient() # No need to provide host
+db = client['testdb']
+collection = db['test-collection']
+# etc., etc.
+client.close()
+
+# Also usable with context manager
+with MongoClient() as client:
+ # do stuff
+```
+
+## Configuration
+| Config param | Description | Optional? | Default |
+|--------------------|-------------------------------------------|-----------|--------------------------------------------------|
+| `mongo_version` | Which MongoD version to download and use. | Yes | Latest for the OS |
+| `mongod_port` | Override port preference. | Yes | Automatically picked between `27017` and `28000` after testing availability |
+| `operating_system` | This makes sense for Linux setting, where there are several flavours | Yes | Automatically determined (Generic for Linux)* |
+| `os_version` | If an operating system has several versions use this parameter to select one | Yes | Latest versoin of the OS will be selected from the list |
+| `download_url` | If set, it won't attempt to determine which MongoDB to download. However there won't be a fallback either.| Yes | Automatically determined from given parameters and using [internal URL bank](pymongo_inmemory/downloader/_patterns.py)**|
+| `ignore_cache` | Even if there is a downloaded version in the cache, download it again. | Yes | False |
+||||
+
+* ****Note 1:*** Generic Linux version offering for MongoDB ends with version **4.0.23**. If the operating system is just `linux` and if selected MongoDB version is higher, it will default to `4.0.23`.
+* *****Note 2:*** URL bank is filled with URLs collected from [release list](https://www.mongodb.com/download-center/community/releases) and [archived released list](https://www.mongodb.com/download-center/community/releases/archive), so if a version is not in the bank you can use the same list to provide an official download link.
+
+
+## Available MongoDB versions
+There is an internal [URL bank](pymongo_inmemory/downloader/_patterns.py) that is filled with URLs collected from
+* [release list](https://www.mongodb.com/download-center/community/releases) and
+* [archived released list](https://www.mongodb.com/download-center/community/releases/archive)
+
+Below table is a summary of possible setting for `operating_system`, `os_version` and available MongoDB versions for
+them to set as `mongo_version` at `major.minor` level.
+
+Note that, not all `major.minor.patch` level is available for all OS versions. For exact patch level range, either see
+release pages of MongoDB or have a look at the internal [URL bank](pymongo_inmemory/downloader/_patterns.py).
+
+|| `operating_system` | `os_version` | MongoDB versions (`major.minor`)|
+|-|-|-|-|
+||`osx`|`generic`*| `2.6`, `3.0`, `3.2`, `3.4`, `3.6`, `4.0`, `4.2`, `4.4`, `5.0`, `6.0`|
+|**NEW**|`macos`|`arm`| `6.0`|
+||`windows`|`generic`*| `2.6`, `3.0`, `3.2`, `3.4`, `3.6`, `4.0`, `4.2`, `4.4`, `5.0`|
+||`linux`|`generic`*| `2.6`, `3.0`, `3.2`, `3.4`, `3.6`, `4.0`|
+||`amazon`|`1`| `3.0`, `3.2`, `3.4`, `3.6`, `4.0`, `4.2`, `4.4`, `5.0`|
+||`amazon`|`2`| `3.6`, `4.0`, `4.2`, `4.4`, `5.0`, `6.0`|
+||`debian`|`7`| `3.0`, `3.2`, `3.4`, `3.6`|
+||`debian`|`8`| `3.2`, `3.4`, `3.6`, `4.0`|
+||`debian`|`9`| `3.6`, `4.0`, `4.2`, `4.4`, `4.5`, `4.6`, `5.0`|
+||`debian`|`10`| `4.2`, `4.4`, `4.5`, `4.6`, `5.0`, `6.0`|
+||`debian`|`11`| `5.0`, `6.0`|
+||`rhel`|`5`| `3.0`, `3.2`|
+||`rhel`|`6`| `3.0`, `3.2`, `3.4`, `3.6`, `4.0`, `4.2`, `4.4`|
+||`rhel`|`7`| `3.0`, `3.2`, `3.4`, `3.6`, `4.0`, `4.2`, `4.4`, `5.0`, `6.0`|
+||`rhel`|`8`| `3.6`, `4.0`, `4.2`, `4.4`, `5.0`, `6.0`|
+||`suse`|`11`| `3.0`, `3.2`, `3.4`, `3.6`|
+||`suse`|`12`| `3.2`, `3.4`, `3.6`, `4.0`, `4.2`, `4.4`, `5.0`, `6.0`|
+||`suse`|`15`| `4.2`, `4.4`, `5.0`, `6.0`|
+||`ubuntu`|`12`| `3.0`, `3.2`, `3.4`, `3.6`|
+||`ubuntu`|`14`| `3.0`, `3.2`, `3.4`, `3.6`, `4.0`|
+||`ubuntu`|`16`| `3.2`, `3.4`, `3.6`, `4.0`, `4.2`, `4.4`|
+||`ubuntu`|`18`| `3.6`, `4.0`, `4.2`, `4.4`, `5.0`|
+||`ubuntu`|`20`| `4.4`, `5.0`|
+||`sunos`|`5`| `2.6`, `3.0`, `3.2`, `3.4`|
+|||||
+
+****Note:*** No need to specify `generic`, as it will be chosen automatically since it's the only version for that OS.
+
+### How do we determine which MongoDB to download?
+There are two (three if it's a Linux flavour) bits of information we need to determine a MongoDB:
+operating system and MongoDB version.
+
+**Note:** You can always set `download_url` to provide an exact URL to download from.
+
+#### Operating System detection
+Python has limited tools in its standard library to determine the exact version of the operating
+system and operating system version. `pymongo_inmemory` basically reads output of [`platform.system()`](platform.system())
+to determine if underlying OS is Linux, MacOS or Windows.
+
+For Windows and MacOS, it will download only one flavour of OS for a particular MongoDB version (64bit and, for Windows, Windows Server version if there is one.)
+However, Linux has many flavours. Up to MongoDB `4.0.23`, a MongoDB for a generic Linux OS can still be downloaded, but for later
+versions of MongoDB, there are no such builds, hence you will need to explicitly set `operating_system`
+parameter if you want to use MongoDB versions higher than that.
+
+Operating system detection behaviour of `pymongo_inmemory` might change in the future, if there is a demand for more **magic**,
+but for now we are keeping things simple.
+
+#### Deciding MongoDB version
+* If no version is provided, highest version of MongoDB for the operating system is selected.
+* If only a **major** version is given, like `4`, then highest `minor.patch` version is selected, like 4.4.4.
+* If only **major.minor** version is given, like `4.0`, then highest `patch` version is selected, like 4.0.23.
+* If exact **major.minor.patch** version is given, like `4.0.22`, then that version is selected.
+* If patch version is not found. like `4.0.50`, highest `patch` version is selected, like `4.0.23`.
+* If minor version is not found. like `3.90.50`, highest `minor.patch` version is selected, like `3.6.22`.
+* If major version is not found. like `1.0.0`, highest `major.minor.patch` version is selected, like `4.4.4`.
+
+## Supported Python versions
+Since few development tools only support Python version 3.6 and above, all testing and tooling done
+from that version up.
+
+This also limits the minimum Python version of tested features. However there shouldn't
+be a hard limitation to use Python 3.5. We recommend upgrading older Python versions than that.
+
+## Development
+Project is set up to develop with [poetry](https://python-poetry.org/). We rely on
+[pyenv](https://github.com/pyenv/pyenv#installation) to maintain the minimum supported
+Python version.
+
+After installing `pyenv`, `poetry`, and cloning the repo, create the shell and install
+all package requirements:
+
+```bash
+pyenv install --skip-existing
+poetry install --no-root
+poetry shell
+```
+
+Run the tests:
+```bash
+pytest
+```
+
+If on NIX systems you can run further tests:
+```bash
+bash tests/integrity/test_integrity.sh
+```
+
+### Adding a new MongoDB version
+Follow the guide [here](pymongo_inmemory/downloader/README.md).
+
+### See how you can wet your feet
+Check out [good first issues](https://github.com/kaizendorks/pymongo_inmemory/contribute).
+
+
+%prep
+%autosetup -n pymongo-inmemory-0.2.11
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-pymongo-inmemory -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.2.11-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..2a88b5a
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+8d71cd8cccc0d8689d801c0a9c75e603 pymongo_inmemory-0.2.11.tar.gz