GeoNode


NameGeoNode JSON
Version 4.2.3 PyPI version JSON
download
home_pagehttp://geonode.org
SummaryApplication for serving and sharing geospatial data
upload_time2024-03-27 13:06:11
maintainerNone
docs_urlNone
authorGeoNode Developers
requires_python>=3.10
licenseGPL
keywords django geonode
VCS
bugtrack_url
requirements Pillow lxml psycopg2 Django amqp beautifulsoup4 httplib2 hyperlink idna urllib3 Paver python-slugify decorator celery kombu vine tqdm Deprecated wrapt jsonschema zipstream-new schema rdflib smart_open PyMuPDF django-allauth django-appconf django-celery-results django-filter django-imagekit django-taggit django-markdownify django-mptt django-modeltranslation django-treebeard django-guardian django-downloadview django-polymorphic django-tastypie django-tinymce django-grappelli django-uuid-upload-path django-widget-tweaks django-sequences oauthlib pyopenssl pyjwt pyproj OWSLib pycsw SQLAlchemy Shapely mercantile numpy dj-database-url dj-pagination django-select2 django-floppyforms django-forms-bootstrap django-autocomplete-light django-invitations django-recaptcha djangorestframework djangorestframework-gis djangorestframework-guardian drf-extensions drf-writable-nested drf-spectacular dynamic_rest Markdown pinax-notifications django_geonode_mapstore_client geonode-importer django-avatar geonode-oauth-toolkit geonode-user-messages geonode-announcements django-activity-stream gn-arcrest geoserver-restconfig gn-gsimporter gisdata django-bootstrap3-datetimepicker-2 django-storages dropbox google-cloud-storage google-cloud-core boto3 whitenoise Brotli xmltodict inflection jdcal mock python-dateutil pytz requests timeout-decorator pylibmc sherlock psutil django-cors-headers user-agents django-user-agents xmljson django-ipware pycountry uWSGI gunicorn ipython docker invoke coverage requests-toolbelt flake8 black pytest pytest-bdd splinter pytest-splinter pytest-django setuptools pip Twisted pixelmatch factory-boy flaky selenium selenium-requests webdriver_manager mistune protobuf mako paramiko certifi jwcrypto cryptography aiohttp dnspython nh3
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![GeoNode](https://raw.githubusercontent.com/GeoNode/documentation/master/about/img/geonode-logo_for_readme.gif "GeoNode")
![OSGeo Project](https://www.osgeo.cn/qgis/_static/images/osgeoproject.png)

Table of Contents
=================

- [Table of Contents](#table-of-contents)
  - [What is GeoNode?](#what-is-geonode)
  - [Try out GeoNode](#try-out-geonode)
  - [Quick Docker Start](#quick-docker-start)
  - [Learn GeoNode](#learn-geonode)
  - [Development](#development)
  - [Contributing](#contributing)
  - [Roadmap](#roadmap)
  - [Showcase](#showcase)
  - [Most useful links](#most-useful-links)
  - [Licensing](#licensing)

What is GeoNode?
----------------

GeoNode is a geospatial content management system, a platform for the
management and publication of geospatial data. It brings together mature
and stable open-source software projects under a consistent and
easy-to-use interface allowing non-specialized users to share data and
create interactive maps.

Data management tools built into GeoNode allow for integrated creation
of data, metadata, and map visualization. Each dataset in the system can
be shared publicly or restricted to allow access to only specific users.
Social features like user profiles and commenting and rating systems
allow for the development of communities around each platform to
facilitate the use, management, and quality control of the data the
GeoNode instance contains.

It is also designed to be a flexible platform that software developers
can extend, modify or integrate against to meet requirements in their
own applications.

Try out GeoNode
---------------

If you just want to try out GeoNode visit our official Demo online at:
[https://development.demo.geonode.org](https://development.demo.geonode.org). After your registration, you will be able
to test all basic functionalities like uploading layers, creation of
maps, editing metadata, styles, and much more. To get an overview what
GeoNode can do we recommend having a look at the [Users
Workshop](https://docs.geonode.org/en/master/usage/index.html).

Quick Docker Start
------------------

  ```bash
    python create-envfile.py
  ```
`create-envfile.py` accepts the following arguments:

- `--https`: Enable SSL. It's disabled by default
- `--env_type`: 
   - When set to `prod` `DEBUG` is disabled and the creation of a valid `SSL` is requested to Letsencrypt's ACME server
   - When set to `test`  `DEBUG` is disabled and a test `SSL` certificate is generated for local testing
   - When set to `dev`  `DEBUG` is enabled and no `SSL` certificate is generated
- `--hostname`: The URL that will serve GeoNode (`localhost` by default)
- `--email`: The administrator's email. Notice that a real email and valid SMPT configurations are required if  `--env_type` is set to `prod`. Letsencrypt uses email for issuing the SSL certificate 
- `--geonodepwd`: GeoNode's administrator password. A random value is set if left empty
- `--geoserverpwd`: GeoNode's administrator password. A random value is set if left empty
- `--pgpwd`: PostgreSQL's administrator password. A random value is set if left empty
- `--dbpwd`: GeoNode DB user role's password. A random value is set if left empty
- `--geodbpwd`: GeoNode data DB user role's password. A random value is set if left empty
- `--clientid`: Client id of Geoserver's GeoNode Oauth2 client. A random value is set if left empty
- `--clientsecret`: Client secret of Geoserver's GeoNode Oauth2 client. A random value is set if left empty

```bash
  docker compose build
  docker compose up -d
```

Learn GeoNode
-------------

After you´ve finished the setup process make yourself familiar with the
general usage and settings of your GeoNodes instance. - the [User
Training](https://docs.geonode.org/en/master/usage/index.html)
is going in depth into what we can do. - the [Administrators
Workshop](https://docs.geonode.org/en/master/admin/index.html)
will guide you to the most important parts regarding management commands
and configuration settings.

Development
-----------

GeoNode is a web-based GIS tool, and as such, in order to do development
on GeoNode itself or to integrate it into your own application, you
should be familiar with basic web development concepts as well as with
general GIS concepts.

For development, GeoNode can be run in a 'development environment'. In
contrast to a 'production environment' development differs as it uses
lightweight components to speed up things.

To get started visit the [Developer
workshop](https://docs.geonode.org/en/master/devel/index.html)
for a basic overview.

If you're planning to customize your GeoNode instance or to extend
its functionalities it's not advisable to change core files in any
case. In this case, it's common to setup a [GeoNode Project
Template](https://github.com/GeoNode/geonode-project).

Contributing
------------

GeoNode is an open source project and contributors are needed to keep
this project moving forward. Learn more on how to contribute on our
[Community
Bylaws](https://github.com/GeoNode/geonode/wiki/Community-Bylaws).

Roadmap
-------

GeoNode's development roadmap is documented in a series of GeoNode
Improvement Projects (GNIPS). They are documented at [GeoNode Wiki](https://github.com/GeoNode/geonode/wiki/GeoNode-Improvement-Proposals).

GNIPS are considered to be large undertakings that will add a large
number of features to the project. As such they are the topic of
community discussion and guidance. The community discusses these on the
developer mailing list: http://lists.osgeo.org/pipermail/geonode-devel/

Showcase
--------

A handful of other Open Source projects extend GeoNode’s functionality
by tapping into the re-usability of Django applications. Visit our
gallery to see how the community uses GeoNode: [GeoNode
Showcase](https://geonode.org/gallery/).

The development community is very supportive of new projects and
contributes ideas and guidance for newcomers.

Most useful links
-----------------


**General**

- Project homepage: https://geonode.org
- Repository: https://github.com/GeoNode/geonode
- Official Demos: https://demo.geonode.org
- GeoNode Wiki: https://github.com/GeoNode/geonode/wiki
- Issue tracker: https://github.com/GeoNode/geonode-project/issues

    In case of sensitive bugs like security vulnerabilities, please
    contact a GeoNode Core Developer directly instead of using an issue
    tracker. We value your effort to improve the security and privacy of
    this project!

**Related projects**

- GeoNode Project: https://github.com/GeoNode/geonode-project
- GeoNode at Docker: https://hub.docker.com/u/geonode
- GeoNode OSGeo-Live: https://live.osgeo.org/en/


**Support**

- User Mailing List: https://lists.osgeo.org/cgi-bin/mailman/listinfo/geonode-users
- Developer Mailing List: https://lists.osgeo.org/cgi-bin/mailman/listinfo/geonode-devel
- Gitter Chat: https://gitter.im/GeoNode/general


Licensing
---------

GeoNode is Copyright 2018 Open Source Geospatial Foundation (OSGeo).

GeoNode is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your
option) any later version. GeoNode is distributed in the hope that it
will be useful, but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with GeoNode. If not, see http://www.gnu.org/licenses.

            

Raw data

            {
    "_id": null,
    "home_page": "http://geonode.org",
    "name": "GeoNode",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "django, geonode",
    "author": "GeoNode Developers",
    "author_email": "dev@geonode.org",
    "download_url": "https://github.com/GeoNode/geonode/archive/master.zip",
    "platform": null,
    "description": "![GeoNode](https://raw.githubusercontent.com/GeoNode/documentation/master/about/img/geonode-logo_for_readme.gif \"GeoNode\")\n![OSGeo Project](https://www.osgeo.cn/qgis/_static/images/osgeoproject.png)\n\nTable of Contents\n=================\n\n- [Table of Contents](#table-of-contents)\n  - [What is GeoNode?](#what-is-geonode)\n  - [Try out GeoNode](#try-out-geonode)\n  - [Quick Docker Start](#quick-docker-start)\n  - [Learn GeoNode](#learn-geonode)\n  - [Development](#development)\n  - [Contributing](#contributing)\n  - [Roadmap](#roadmap)\n  - [Showcase](#showcase)\n  - [Most useful links](#most-useful-links)\n  - [Licensing](#licensing)\n\nWhat is GeoNode?\n----------------\n\nGeoNode is a geospatial content management system, a platform for the\nmanagement and publication of geospatial data. It brings together mature\nand stable open-source software projects under a consistent and\neasy-to-use interface allowing non-specialized users to share data and\ncreate interactive maps.\n\nData management tools built into GeoNode allow for integrated creation\nof data, metadata, and map visualization. Each dataset in the system can\nbe shared publicly or restricted to allow access to only specific users.\nSocial features like user profiles and commenting and rating systems\nallow for the development of communities around each platform to\nfacilitate the use, management, and quality control of the data the\nGeoNode instance contains.\n\nIt is also designed to be a flexible platform that software developers\ncan extend, modify or integrate against to meet requirements in their\nown applications.\n\nTry out GeoNode\n---------------\n\nIf you just want to try out GeoNode visit our official Demo online at:\n[https://development.demo.geonode.org](https://development.demo.geonode.org). After your registration, you will be able\nto test all basic functionalities like uploading layers, creation of\nmaps, editing metadata, styles, and much more. To get an overview what\nGeoNode can do we recommend having a look at the [Users\nWorkshop](https://docs.geonode.org/en/master/usage/index.html).\n\nQuick Docker Start\n------------------\n\n  ```bash\n    python create-envfile.py\n  ```\n`create-envfile.py` accepts the following arguments:\n\n- `--https`: Enable SSL. It's disabled by default\n- `--env_type`: \n   - When set to `prod` `DEBUG` is disabled and the creation of a valid `SSL` is requested to Letsencrypt's ACME server\n   - When set to `test`  `DEBUG` is disabled and a test `SSL` certificate is generated for local testing\n   - When set to `dev`  `DEBUG` is enabled and no `SSL` certificate is generated\n- `--hostname`: The URL that will serve GeoNode (`localhost` by default)\n- `--email`: The administrator's email. Notice that a real email and valid SMPT configurations are required if  `--env_type` is set to `prod`. Letsencrypt uses email for issuing the SSL certificate \n- `--geonodepwd`: GeoNode's administrator password. A random value is set if left empty\n- `--geoserverpwd`: GeoNode's administrator password. A random value is set if left empty\n- `--pgpwd`: PostgreSQL's administrator password. A random value is set if left empty\n- `--dbpwd`: GeoNode DB user role's password. A random value is set if left empty\n- `--geodbpwd`: GeoNode data DB user role's password. A random value is set if left empty\n- `--clientid`: Client id of Geoserver's GeoNode Oauth2 client. A random value is set if left empty\n- `--clientsecret`: Client secret of Geoserver's GeoNode Oauth2 client. A random value is set if left empty\n\n```bash\n  docker compose build\n  docker compose up -d\n```\n\nLearn GeoNode\n-------------\n\nAfter you\u00b4ve finished the setup process make yourself familiar with the\ngeneral usage and settings of your GeoNodes instance. - the [User\nTraining](https://docs.geonode.org/en/master/usage/index.html)\nis going in depth into what we can do. - the [Administrators\nWorkshop](https://docs.geonode.org/en/master/admin/index.html)\nwill guide you to the most important parts regarding management commands\nand configuration settings.\n\nDevelopment\n-----------\n\nGeoNode is a web-based GIS tool, and as such, in order to do development\non GeoNode itself or to integrate it into your own application, you\nshould be familiar with basic web development concepts as well as with\ngeneral GIS concepts.\n\nFor development, GeoNode can be run in a 'development environment'. In\ncontrast to a 'production environment' development differs as it uses\nlightweight components to speed up things.\n\nTo get started visit the [Developer\nworkshop](https://docs.geonode.org/en/master/devel/index.html)\nfor a basic overview.\n\nIf you're planning to customize your GeoNode instance or to extend\nits functionalities it's not advisable to change core files in any\ncase. In this case, it's common to setup a [GeoNode Project\nTemplate](https://github.com/GeoNode/geonode-project).\n\nContributing\n------------\n\nGeoNode is an open source project and contributors are needed to keep\nthis project moving forward. Learn more on how to contribute on our\n[Community\nBylaws](https://github.com/GeoNode/geonode/wiki/Community-Bylaws).\n\nRoadmap\n-------\n\nGeoNode's development roadmap is documented in a series of GeoNode\nImprovement Projects (GNIPS). They are documented at [GeoNode Wiki](https://github.com/GeoNode/geonode/wiki/GeoNode-Improvement-Proposals).\n\nGNIPS are considered to be large undertakings that will add a large\nnumber of features to the project. As such they are the topic of\ncommunity discussion and guidance. The community discusses these on the\ndeveloper mailing list: http://lists.osgeo.org/pipermail/geonode-devel/\n\nShowcase\n--------\n\nA handful of other Open Source projects extend GeoNode\u2019s functionality\nby tapping into the re-usability of Django applications. Visit our\ngallery to see how the community uses GeoNode: [GeoNode\nShowcase](https://geonode.org/gallery/).\n\nThe development community is very supportive of new projects and\ncontributes ideas and guidance for newcomers.\n\nMost useful links\n-----------------\n\n\n**General**\n\n- Project homepage: https://geonode.org\n- Repository: https://github.com/GeoNode/geonode\n- Official Demos: https://demo.geonode.org\n- GeoNode Wiki: https://github.com/GeoNode/geonode/wiki\n- Issue tracker: https://github.com/GeoNode/geonode-project/issues\n\n    In case of sensitive bugs like security vulnerabilities, please\n    contact a GeoNode Core Developer directly instead of using an issue\n    tracker. We value your effort to improve the security and privacy of\n    this project!\n\n**Related projects**\n\n- GeoNode Project: https://github.com/GeoNode/geonode-project\n- GeoNode at Docker: https://hub.docker.com/u/geonode\n- GeoNode OSGeo-Live: https://live.osgeo.org/en/\n\n\n**Support**\n\n- User Mailing List: https://lists.osgeo.org/cgi-bin/mailman/listinfo/geonode-users\n- Developer Mailing List: https://lists.osgeo.org/cgi-bin/mailman/listinfo/geonode-devel\n- Gitter Chat: https://gitter.im/GeoNode/general\n\n\nLicensing\n---------\n\nGeoNode is Copyright 2018 Open Source Geospatial Foundation (OSGeo).\n\nGeoNode is free software: you can redistribute it and/or modify it under\nthe terms of the GNU General Public License as published by the Free\nSoftware Foundation, either version 3 of the License, or (at your\noption) any later version. GeoNode is distributed in the hope that it\nwill be useful, but WITHOUT ANY WARRANTY; without even the implied\nwarranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith GeoNode. If not, see http://www.gnu.org/licenses.\n",
    "bugtrack_url": null,
    "license": "GPL",
    "summary": "Application for serving and sharing geospatial data",
    "version": "4.2.3",
    "project_urls": {
        "Download": "https://github.com/GeoNode/geonode/archive/master.zip",
        "Homepage": "http://geonode.org"
    },
    "split_keywords": [
        "django",
        " geonode"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d3a2bc6da7f4e5652e27ee6fcbe5eb81cb71c9028059a600e50b2c89bd665c82",
                "md5": "bbb7592c64ed0ef37be9e017566a497d",
                "sha256": "4cdb86955bb1e2be7d25ce886ff8c7da59170e12400cad30ad6cd15e8a08403c"
            },
            "downloads": -1,
            "filename": "GeoNode-4.2.3-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "bbb7592c64ed0ef37be9e017566a497d",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=3.10",
            "size": 24738347,
            "upload_time": "2024-03-27T13:06:11",
            "upload_time_iso_8601": "2024-03-27T13:06:11.871045Z",
            "url": "https://files.pythonhosted.org/packages/d3/a2/bc6da7f4e5652e27ee6fcbe5eb81cb71c9028059a600e50b2c89bd665c82/GeoNode-4.2.3-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-27 13:06:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "GeoNode",
    "github_project": "geonode",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "circle": true,
    "requirements": [
        {
            "name": "Pillow",
            "specs": [
                [
                    "==",
                    "10.3.0"
                ]
            ]
        },
        {
            "name": "lxml",
            "specs": [
                [
                    "==",
                    "5.2.1"
                ]
            ]
        },
        {
            "name": "psycopg2",
            "specs": [
                [
                    "==",
                    "2.9.9"
                ]
            ]
        },
        {
            "name": "Django",
            "specs": [
                [
                    "==",
                    "4.2.9"
                ]
            ]
        },
        {
            "name": "amqp",
            "specs": [
                [
                    "==",
                    "5.2.0"
                ]
            ]
        },
        {
            "name": "beautifulsoup4",
            "specs": [
                [
                    "==",
                    "4.12.3"
                ]
            ]
        },
        {
            "name": "httplib2",
            "specs": [
                [
                    "<",
                    "0.22.1"
                ]
            ]
        },
        {
            "name": "hyperlink",
            "specs": [
                [
                    "==",
                    "21.0.0"
                ]
            ]
        },
        {
            "name": "idna",
            "specs": [
                [
                    "<",
                    "4"
                ],
                [
                    ">=",
                    "2.5"
                ]
            ]
        },
        {
            "name": "urllib3",
            "specs": [
                [
                    "==",
                    "1.26.18"
                ]
            ]
        },
        {
            "name": "Paver",
            "specs": [
                [
                    "==",
                    "1.3.4"
                ]
            ]
        },
        {
            "name": "python-slugify",
            "specs": [
                [
                    "==",
                    "8.0.4"
                ]
            ]
        },
        {
            "name": "decorator",
            "specs": [
                [
                    "==",
                    "5.1.1"
                ]
            ]
        },
        {
            "name": "celery",
            "specs": [
                [
                    "==",
                    "5.3.6"
                ]
            ]
        },
        {
            "name": "kombu",
            "specs": [
                [
                    "==",
                    "5.3.6"
                ]
            ]
        },
        {
            "name": "vine",
            "specs": [
                [
                    "==",
                    "5.1.0"
                ]
            ]
        },
        {
            "name": "tqdm",
            "specs": [
                [
                    "==",
                    "4.66.2"
                ]
            ]
        },
        {
            "name": "Deprecated",
            "specs": [
                [
                    "==",
                    "1.2.14"
                ]
            ]
        },
        {
            "name": "wrapt",
            "specs": [
                [
                    "==",
                    "1.16.0"
                ]
            ]
        },
        {
            "name": "jsonschema",
            "specs": [
                [
                    "==",
                    "4.21.1"
                ]
            ]
        },
        {
            "name": "zipstream-new",
            "specs": [
                [
                    "==",
                    "1.1.8"
                ]
            ]
        },
        {
            "name": "schema",
            "specs": [
                [
                    "==",
                    "0.7.5"
                ]
            ]
        },
        {
            "name": "rdflib",
            "specs": [
                [
                    "==",
                    "6.3.2"
                ]
            ]
        },
        {
            "name": "smart_open",
            "specs": [
                [
                    "==",
                    "7.0.4"
                ]
            ]
        },
        {
            "name": "PyMuPDF",
            "specs": [
                [
                    "==",
                    "1.24.1"
                ]
            ]
        },
        {
            "name": "django-allauth",
            "specs": [
                [
                    "==",
                    "0.61.1"
                ]
            ]
        },
        {
            "name": "django-appconf",
            "specs": [
                [
                    "==",
                    "1.0.6"
                ]
            ]
        },
        {
            "name": "django-celery-results",
            "specs": [
                [
                    "==",
                    "2.5.1"
                ]
            ]
        },
        {
            "name": "django-filter",
            "specs": [
                [
                    "==",
                    "24.2"
                ]
            ]
        },
        {
            "name": "django-imagekit",
            "specs": [
                [
                    "==",
                    "5.0.0"
                ]
            ]
        },
        {
            "name": "django-taggit",
            "specs": [
                [
                    "==",
                    "5.0.1"
                ]
            ]
        },
        {
            "name": "django-markdownify",
            "specs": [
                [
                    "==",
                    "0.9.3"
                ]
            ]
        },
        {
            "name": "django-mptt",
            "specs": [
                [
                    "==",
                    "0.16.0"
                ]
            ]
        },
        {
            "name": "django-modeltranslation",
            "specs": [
                [
                    "<",
                    "0.19.0"
                ],
                [
                    ">=",
                    "0.11"
                ]
            ]
        },
        {
            "name": "django-treebeard",
            "specs": [
                [
                    "==",
                    "4.7.1"
                ]
            ]
        },
        {
            "name": "django-guardian",
            "specs": [
                [
                    "<",
                    "2.4.1"
                ]
            ]
        },
        {
            "name": "django-downloadview",
            "specs": [
                [
                    "==",
                    "2.3.0"
                ]
            ]
        },
        {
            "name": "django-polymorphic",
            "specs": [
                [
                    "==",
                    "3.1.0"
                ]
            ]
        },
        {
            "name": "django-tastypie",
            "specs": [
                [
                    "<",
                    "0.15.0"
                ]
            ]
        },
        {
            "name": "django-tinymce",
            "specs": [
                [
                    "==",
                    "4.0.0"
                ]
            ]
        },
        {
            "name": "django-grappelli",
            "specs": [
                [
                    "==",
                    "3.0.8"
                ]
            ]
        },
        {
            "name": "django-uuid-upload-path",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "django-widget-tweaks",
            "specs": [
                [
                    "==",
                    "1.5.0"
                ]
            ]
        },
        {
            "name": "django-sequences",
            "specs": [
                [
                    "==",
                    "3.0"
                ]
            ]
        },
        {
            "name": "oauthlib",
            "specs": [
                [
                    "==",
                    "3.2.2"
                ]
            ]
        },
        {
            "name": "pyopenssl",
            "specs": [
                [
                    "==",
                    "24.1.0"
                ]
            ]
        },
        {
            "name": "pyjwt",
            "specs": [
                [
                    "==",
                    "2.8.0"
                ]
            ]
        },
        {
            "name": "pyproj",
            "specs": [
                [
                    "<",
                    "3.7.0"
                ]
            ]
        },
        {
            "name": "OWSLib",
            "specs": [
                [
                    "==",
                    "0.30.0"
                ]
            ]
        },
        {
            "name": "pycsw",
            "specs": [
                [
                    "==",
                    "2.6.1"
                ]
            ]
        },
        {
            "name": "SQLAlchemy",
            "specs": [
                [
                    "==",
                    "2.0.29"
                ]
            ]
        },
        {
            "name": "Shapely",
            "specs": [
                [
                    "==",
                    "1.8.5.post1"
                ]
            ]
        },
        {
            "name": "mercantile",
            "specs": [
                [
                    "==",
                    "1.2.1"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    "==",
                    "1.26.*"
                ]
            ]
        },
        {
            "name": "dj-database-url",
            "specs": [
                [
                    "==",
                    "2.1.0"
                ]
            ]
        },
        {
            "name": "dj-pagination",
            "specs": [
                [
                    "==",
                    "2.5.0"
                ]
            ]
        },
        {
            "name": "django-select2",
            "specs": [
                [
                    "==",
                    "8.1.2"
                ]
            ]
        },
        {
            "name": "django-floppyforms",
            "specs": [
                [
                    "<",
                    "1.10.0"
                ]
            ]
        },
        {
            "name": "django-forms-bootstrap",
            "specs": [
                [
                    "<=",
                    "3.1.0"
                ]
            ]
        },
        {
            "name": "django-autocomplete-light",
            "specs": [
                [
                    "==",
                    "3.11.0"
                ]
            ]
        },
        {
            "name": "django-invitations",
            "specs": [
                [
                    "<",
                    "2.1.1"
                ]
            ]
        },
        {
            "name": "django-recaptcha",
            "specs": [
                [
                    "==",
                    "4.0.0"
                ]
            ]
        },
        {
            "name": "djangorestframework",
            "specs": [
                [
                    "==",
                    "3.14.0"
                ]
            ]
        },
        {
            "name": "djangorestframework-gis",
            "specs": [
                [
                    "==",
                    "1.0"
                ]
            ]
        },
        {
            "name": "djangorestframework-guardian",
            "specs": [
                [
                    "==",
                    "0.3.0"
                ]
            ]
        },
        {
            "name": "drf-extensions",
            "specs": [
                [
                    "==",
                    "0.7.1"
                ]
            ]
        },
        {
            "name": "drf-writable-nested",
            "specs": [
                [
                    "==",
                    "0.7.0"
                ]
            ]
        },
        {
            "name": "drf-spectacular",
            "specs": [
                [
                    "==",
                    "0.27.2"
                ]
            ]
        },
        {
            "name": "dynamic_rest",
            "specs": []
        },
        {
            "name": "Markdown",
            "specs": [
                [
                    "==",
                    "3.6"
                ]
            ]
        },
        {
            "name": "pinax-notifications",
            "specs": []
        },
        {
            "name": "django_geonode_mapstore_client",
            "specs": []
        },
        {
            "name": "geonode-importer",
            "specs": []
        },
        {
            "name": "django-avatar",
            "specs": [
                [
                    "==",
                    "8.0.0"
                ]
            ]
        },
        {
            "name": "geonode-oauth-toolkit",
            "specs": []
        },
        {
            "name": "geonode-user-messages",
            "specs": []
        },
        {
            "name": "geonode-announcements",
            "specs": []
        },
        {
            "name": "django-activity-stream",
            "specs": [
                [
                    "==",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "gn-arcrest",
            "specs": [
                [
                    "==",
                    "10.5.6"
                ]
            ]
        },
        {
            "name": "geoserver-restconfig",
            "specs": [
                [
                    "~=",
                    "2.0.11"
                ]
            ]
        },
        {
            "name": "gn-gsimporter",
            "specs": [
                [
                    "==",
                    "2.0.4"
                ]
            ]
        },
        {
            "name": "gisdata",
            "specs": [
                [
                    "==",
                    "0.5.4"
                ]
            ]
        },
        {
            "name": "django-bootstrap3-datetimepicker-2",
            "specs": [
                [
                    "==",
                    "2.8.3"
                ]
            ]
        },
        {
            "name": "django-storages",
            "specs": [
                [
                    "==",
                    "1.14.2"
                ]
            ]
        },
        {
            "name": "dropbox",
            "specs": [
                [
                    "==",
                    "11.36.2"
                ]
            ]
        },
        {
            "name": "google-cloud-storage",
            "specs": [
                [
                    "==",
                    "2.16.0"
                ]
            ]
        },
        {
            "name": "google-cloud-core",
            "specs": [
                [
                    "==",
                    "2.4.1"
                ]
            ]
        },
        {
            "name": "boto3",
            "specs": [
                [
                    "==",
                    "1.34.79"
                ]
            ]
        },
        {
            "name": "whitenoise",
            "specs": [
                [
                    "==",
                    "6.6.0"
                ]
            ]
        },
        {
            "name": "Brotli",
            "specs": [
                [
                    "==",
                    "1.1.0"
                ]
            ]
        },
        {
            "name": "xmltodict",
            "specs": [
                [
                    "<",
                    "0.13.1"
                ]
            ]
        },
        {
            "name": "inflection",
            "specs": [
                [
                    ">=",
                    "0.4.0"
                ]
            ]
        },
        {
            "name": "jdcal",
            "specs": [
                [
                    "==",
                    "1.4.1"
                ]
            ]
        },
        {
            "name": "mock",
            "specs": [
                [
                    "<",
                    "6.0.0"
                ]
            ]
        },
        {
            "name": "python-dateutil",
            "specs": [
                [
                    "==",
                    "2.9.0.post0"
                ]
            ]
        },
        {
            "name": "pytz",
            "specs": [
                [
                    "==",
                    "2024.1"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    "==",
                    "2.31.0"
                ]
            ]
        },
        {
            "name": "timeout-decorator",
            "specs": [
                [
                    "==",
                    "0.5.0"
                ]
            ]
        },
        {
            "name": "pylibmc",
            "specs": [
                [
                    "==",
                    "1.6.3"
                ]
            ]
        },
        {
            "name": "sherlock",
            "specs": [
                [
                    "==",
                    "0.4.1"
                ]
            ]
        },
        {
            "name": "psutil",
            "specs": [
                [
                    "==",
                    "5.9.8"
                ]
            ]
        },
        {
            "name": "django-cors-headers",
            "specs": [
                [
                    "==",
                    "4.3.1"
                ]
            ]
        },
        {
            "name": "user-agents",
            "specs": []
        },
        {
            "name": "django-user-agents",
            "specs": []
        },
        {
            "name": "xmljson",
            "specs": []
        },
        {
            "name": "django-ipware",
            "specs": [
                [
                    "<",
                    "6.1"
                ]
            ]
        },
        {
            "name": "pycountry",
            "specs": []
        },
        {
            "name": "uWSGI",
            "specs": [
                [
                    "==",
                    "2.0.25"
                ]
            ]
        },
        {
            "name": "gunicorn",
            "specs": [
                [
                    "==",
                    "21.2.0"
                ]
            ]
        },
        {
            "name": "ipython",
            "specs": [
                [
                    "==",
                    "8.23.0"
                ]
            ]
        },
        {
            "name": "docker",
            "specs": [
                [
                    "==",
                    "7.0.0"
                ]
            ]
        },
        {
            "name": "invoke",
            "specs": [
                [
                    "==",
                    "2.2.0"
                ]
            ]
        },
        {
            "name": "coverage",
            "specs": [
                [
                    "==",
                    "7.4.4"
                ]
            ]
        },
        {
            "name": "requests-toolbelt",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "flake8",
            "specs": [
                [
                    "==",
                    "7.0.0"
                ]
            ]
        },
        {
            "name": "black",
            "specs": [
                [
                    "==",
                    "24.4.0"
                ]
            ]
        },
        {
            "name": "pytest",
            "specs": [
                [
                    "==",
                    "8.1.1"
                ]
            ]
        },
        {
            "name": "pytest-bdd",
            "specs": [
                [
                    "==",
                    "7.1.2"
                ]
            ]
        },
        {
            "name": "splinter",
            "specs": [
                [
                    "==",
                    "0.21.0"
                ]
            ]
        },
        {
            "name": "pytest-splinter",
            "specs": [
                [
                    "==",
                    "3.3.2"
                ]
            ]
        },
        {
            "name": "pytest-django",
            "specs": [
                [
                    "==",
                    "4.8.0"
                ]
            ]
        },
        {
            "name": "setuptools",
            "specs": [
                [
                    "<",
                    "69.6.0"
                ],
                [
                    ">=",
                    "65.5.1"
                ]
            ]
        },
        {
            "name": "pip",
            "specs": [
                [
                    "==",
                    "24.0"
                ]
            ]
        },
        {
            "name": "Twisted",
            "specs": [
                [
                    "==",
                    "24.3.0"
                ]
            ]
        },
        {
            "name": "pixelmatch",
            "specs": [
                [
                    "==",
                    "0.3.0"
                ]
            ]
        },
        {
            "name": "factory-boy",
            "specs": [
                [
                    "==",
                    "3.3.0"
                ]
            ]
        },
        {
            "name": "flaky",
            "specs": [
                [
                    "==",
                    "3.8.1"
                ]
            ]
        },
        {
            "name": "selenium",
            "specs": [
                [
                    ">=",
                    "4.15.1"
                ],
                [
                    "<",
                    "5.0.0"
                ]
            ]
        },
        {
            "name": "selenium-requests",
            "specs": [
                [
                    "==",
                    "2.0.4"
                ]
            ]
        },
        {
            "name": "webdriver_manager",
            "specs": [
                [
                    "==",
                    "4.0.1"
                ]
            ]
        },
        {
            "name": "mistune",
            "specs": [
                [
                    "==",
                    "3.0.2"
                ]
            ]
        },
        {
            "name": "protobuf",
            "specs": [
                [
                    "==",
                    "3.20.3"
                ]
            ]
        },
        {
            "name": "mako",
            "specs": [
                [
                    "==",
                    "1.3.3"
                ]
            ]
        },
        {
            "name": "paramiko",
            "specs": [
                [
                    "==",
                    "3.4.0"
                ]
            ]
        },
        {
            "name": "certifi",
            "specs": [
                [
                    ">=",
                    "2023.7.22"
                ]
            ]
        },
        {
            "name": "jwcrypto",
            "specs": [
                [
                    ">=",
                    "1.5.6"
                ]
            ]
        },
        {
            "name": "cryptography",
            "specs": [
                [
                    ">=",
                    "41.0.0"
                ]
            ]
        },
        {
            "name": "aiohttp",
            "specs": [
                [
                    ">=",
                    "3.9.0"
                ]
            ]
        },
        {
            "name": "dnspython",
            "specs": [
                [
                    ">=",
                    "2.6.0rc1"
                ]
            ]
        },
        {
            "name": "nh3",
            "specs": [
                [
                    "==",
                    "0.2.17"
                ]
            ]
        }
    ],
    "lcname": "geonode"
}
        
Elapsed time: 0.23571s