Metadata-Version: 2.1
Name: pymeos
Version: 1.1.3
Summary: Python wrapper for the MEOS C Library.
Author-email: Victor Divi <vdiviloper@gmail.com>, Zhicheng Luo <zhicheng.luo@ulb.be>, Krishna Chaitanya Bommakanti <bkchaitan94@gmail.com>
License: PostgreSQL License
        
        -------------------------------------------------------------------------------
        This PyMEOS code is provided under The PostgreSQL License.
        
        Copyright (c) 2020, Université libre de Bruxelles and PyMEOS contributors
        
        Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby
        granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.
        
        IN NO EVENT SHALL UNIVERSITE LIBRE DE BRUXELLES BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST
        PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF UNIVERSITE LIBRE DE BRUXELLES HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
        DAMAGE.
        
        UNIVERSITE LIBRE DE BRUXELLES SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
        FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND UNIVERSITE LIBRE DE BRUXELLES HAS NO OBLIGATIONS TO PROVIDE
        MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
        -------------------------------------------------------------------------------
Project-URL: Homepage, https://github.com/MobilityDB/PyMEOS/pymeos
Project-URL: Bug Tracker, https://github.com/MobilityDB/PyMEOS/issues
Project-URL: Changelog, https://github.com/MobilityDB/PyMEOS/blob/master/pymeos/CHANGELOG.md
Classifier: License :: OSI Approved :: PostgreSQL License
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: C
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pymeos-cffi<2,>=1.1.0
Requires-Dist: python-dateutil
Requires-Dist: shapely
Provides-Extra: dbp
Requires-Dist: psycopg; extra == "dbp"
Provides-Extra: dbp2
Requires-Dist: psycopg2; extra == "dbp2"
Provides-Extra: dba
Requires-Dist: asyncpg; extra == "dba"
Provides-Extra: plot
Requires-Dist: matplotlib; extra == "plot"
Provides-Extra: pandas
Requires-Dist: geopandas; extra == "pandas"

# ![MEOS Logo](https://raw.githubusercontent.com/MobilityDB/PyMEOS/master/docs/images/PyMEOS%20Logo.png)

[MEOS (Mobility Engine, Open Source)](https://www.libmeos.org/) is a C library which enables the manipulation of 
temporal and spatio-temporal data based on [MobilityDB](https://mobilitydb.com/)'s data types and functions.  
PyMEOS is a Python library built on top of MEOS using CFFI which presents a set of classes to manipulate spatio-temporal 
information

# Usage

## Installation

````shell
pip install pymeos
````
> PyMEOS wheel should be compatible with any system, but it is possible that the pre-built distribution is 
> not available for PyMEOS CFFI for some OS/Architecture.  
> If it is not available, see the [source installation notes on PyMEOS CFFI's readme](../pymeos_cffi#installation) 
> on how to proceed

## Sample code

>  **IMPORTANT** Before using any PyMEOS function, always call `pymeos_initialize`. Otherwise, the library will 
> crash with a `Segmentation Fault` error. You should also always call `pymeos_finalize` at the end of your code.

````python
from pymeos import pymeos_initialize, pymeos_finalize, TGeogPointInst, TGeogPointSeq

# Important: Always initialize MEOS library
pymeos_initialize()

sequence_from_string = TGeogPointSeq(string='[Point(10.0 10.0)@2019-09-01 00:00:00+01, Point(20.0 20.0)@2019-09-02 00:00:00+01, Point(10.0 10.0)@2019-09-03 00:00:00+01]')
print(f'Output: {sequence_from_string}')

sequence_from_points = TGeogPointSeq(instant_list=[TGeogPointInst(string='Point(10.0 10.0)@2019-09-01 00:00:00+01'), TGeogPointInst(string='Point(20.0 20.0)@2019-09-02 00:00:00+01'), TGeogPointInst(string='Point(10.0 10.0)@2019-09-03 00:00:00+01')], lower_inc=True, upper_inc=True)
speed = sequence_from_points.speed()
print(f'Speeds: {speed}')

# Call finish at the end of your code
pymeos_finalize()
````
