This is an automated email from the git hooks/post-receive script. johanvdw-guest pushed a commit to branch master in repository geolinks.
commit e64cde53ffbf55ea822f4b0b0d550fa5580cc57d Author: Johan Van de Wauw <jo...@vandewauw.be> Date: Mon Sep 14 21:53:33 2015 +0200 Imported Upstream version 0.2.0 --- PKG-INFO | 10 ++++- README.md | 2 +- geolinks/__init__.py | 83 ++++++++++++++++++++++++++++++++++++++- geolinks/links.py | 108 --------------------------------------------------- setup.py | 6 +++ 5 files changed, 97 insertions(+), 112 deletions(-) diff --git a/PKG-INFO b/PKG-INFO index 88e1cd2..e689548 100644 --- a/PKG-INFO +++ b/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: geolinks -Version: 0.1.0 +Version: 0.2.0 Summary: Utilities to deal with geospatial links Home-page: https://github.com/geopython/geolinks Author: Tom Kralidis @@ -25,7 +25,7 @@ Description: [![Build Status](https://travis-ci.org/geopython/geolinks.png)](htt --- ```python - >>> from geolinks.links import sniff_link + >>> from geolinks import sniff_link >>> sniff_link('http://host/wms?service=WMS') 'OGC:WMS' >>> sniff_link('http://host/wms?service=WPS') @@ -47,4 +47,10 @@ Classifier: Intended Audience :: Science/Research Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.6 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 Classifier: Topic :: Scientific/Engineering :: GIS diff --git a/README.md b/README.md index ab061d0..25e5ba5 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Use --- ```python ->>> from geolinks.links import sniff_link +>>> from geolinks import sniff_link >>> sniff_link('http://host/wms?service=WMS') 'OGC:WMS' >>> sniff_link('http://host/wms?service=WPS') diff --git a/geolinks/__init__.py b/geolinks/__init__.py index 5963c2e..9b22bc2 100644 --- a/geolinks/__init__.py +++ b/geolinks/__init__.py @@ -26,4 +26,85 @@ # OTHER DEALINGS IN THE SOFTWARE. # # ================================================================= -__version__ = '0.1.0' + +import logging + +LOGGER = logging.getLogger(__name__) + +__version__ = '0.2.0' + + +def inurl(needles, haystack, position='any'): + """convenience function to make string.find return bool""" + + count = 0 + + # lowercase everything to do case-insensitive search + haystack2 = haystack.lower() + + for needle in needles: + needle2 = needle.lower() + if position == 'any': + if haystack2.find(needle2) > -1: + count += 1 + elif position == 'end': + if haystack2.endswith(needle2): + count += 1 + elif position == 'begin': + if haystack2.startswith(needle2): + count += 1 + + # assessment + if count > 0: + return True + return False + + +def sniff_link(url): + """performs basic heuristics to detect what the URL is""" + + protocol = None + link = url.strip() + + # heuristics begin + if inurl(['service=CSW', 'request=GetRecords'], link): + protocol = 'OGC:CSW' + elif inurl(['service=SOS', 'request=GetObservation'], link): + protocol = 'OGC:SOS' + elif inurl(['service=WCS', 'request=GetCoverage'], link): + protocol = 'OGC:WCS' + elif inurl(['service=WFS', 'request=GetFeature'], link): + protocol = 'OGC:WFS' + elif inurl(['service=WMS', 'request=GetMap'], link): + protocol = 'OGC:WMS' + elif inurl(['service=WPS', 'request=Execute'], link): + protocol = 'OGC:WPS' + elif inurl(['arcims'], link): + protocol = 'ESRI:ArcIMS' + elif inurl(['arcgis'], link): + protocol = 'ESRI:ArcGIS' + elif inurl(['mpk'], link, 'end'): + protocol = 'ESRI:MPK' + elif inurl(['opendap'], link): + protocol = 'OPeNDAP:OPeNDAP' + elif inurl(['ncss'], link): + protocol = 'UNIDATA:NCSS' + elif inurl(['cdmremote'], link): + protocol = 'UNIDATA:CDM' + elif inurl(['gml'], link, 'end'): + protocol = 'OGC:GML' + elif inurl(['htm', 'html', 'shtml'], link, 'end'): + protocol = 'WWW:LINK' + # extra tests + elif all([inurl(['census.gov/geo/tiger'], link), + inurl(['zip'], link, 'end')]): + protocol = 'ESRI:SHAPEFILE' + elif inurl(['7z', 'bz2', 'gz', 'rar', 'tar.gz', 'tgz', 'zip'], + link, 'end'): + protocol = 'WWW:DOWNLOAD' + elif inurl(['kml', 'kmz'], link, 'end'): + protocol = 'OGC:KML' + else: + LOGGER.info('No link type detected') + + return protocol diff --git a/geolinks/links.py b/geolinks/links.py deleted file mode 100644 index 9fb2d06..0000000 --- a/geolinks/links.py +++ /dev/null @@ -1,108 +0,0 @@ -# ================================================================= -# -# Authors: Tom Kralidis <tomkrali...@gmail.com> -# -# Copyright (c) 2014 Tom Kralidis -# -# Permission is hereby granted, free of charge, to any person -# obtaining a copy of this software and associated documentation -# files (the "Software"), to deal in the Software without -# restriction, including without limitation the rights to use, -# copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following -# conditions: -# -# The above copyright notice and this permission notice shall be -# included in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -# OTHER DEALINGS IN THE SOFTWARE. -# -# ================================================================= - -import logging - -LOGGER = logging.getLogger(__name__) - - -def inurl(needles, haystack, position='any'): - """convenience function to make string.find return bool""" - - count = 0 - - # lowercase everything to do case-insensitive search - haystack2 = haystack.lower() - - for needle in needles: - needle2 = needle.lower() - if position == 'any': - if haystack2.find(needle2) > -1: - count += 1 - elif position == 'end': - if haystack2.endswith(needle2): - count += 1 - elif position == 'begin': - if haystack2.startswith(needle2): - count += 1 - - # assessment - if count > 0: - return True - return False - - -def sniff_link(url): - """performs basic heuristics to detect what the URL is""" - - protocol = None - link = url.strip() - - # heuristics begin - if inurl(['service=CSW', 'request=GetRecords'], link): - protocol = 'OGC:CSW' - elif inurl(['service=SOS', 'request=GetObservation'], link): - protocol = 'OGC:SOS' - elif inurl(['service=WCS', 'request=GetCoverage'], link): - protocol = 'OGC:WCS' - elif inurl(['service=WFS', 'request=GetFeature'], link): - protocol = 'OGC:WFS' - elif inurl(['service=WMS', 'request=GetMap'], link): - protocol = 'OGC:WMS' - elif inurl(['service=WPS', 'request=Execute'], link): - protocol = 'OGC:WPS' - elif inurl(['arcims'], link): - protocol = 'ESRI:ArcIMS' - elif inurl(['arcgis'], link): - protocol = 'ESRI:ArcGIS' - elif inurl(['mpk'], link, 'end'): - protocol = 'ESRI:MPK' - elif inurl(['opendap'], link): - protocol = 'OPeNDAP:OPeNDAP' - elif inurl(['ncss'], link): - protocol = 'UNIDATA:NCSS' - elif inurl(['cdmremote'], link): - protocol = 'UNIDATA:CDM' - elif inurl(['gml'], link, 'end'): - protocol = 'OGC:GML' - elif inurl(['htm', 'html', 'shtml'], link, 'end'): - protocol = 'WWW:LINK' - # extra tests - elif all([inurl(['census.gov/geo/tiger'], link), - inurl(['zip'], link, 'end')]): - protocol = 'ESRI:SHAPEFILE' - elif inurl(['7z', 'bz2', 'gz', 'rar', 'tar.gz', 'tgz', 'zip'], - link, 'end'): - protocol = 'WWW:DOWNLOAD' - elif inurl(['kml', 'kmz'], link, 'end'): - protocol = 'OGC:KML' - else: - LOGGER.info('No link type detected') - - return protocol diff --git a/setup.py b/setup.py index a20461a..736b294 100644 --- a/setup.py +++ b/setup.py @@ -52,6 +52,12 @@ setup( 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', 'Programming Language :: Python', + 'Programming Language :: Python :: 2', + 'Programming Language :: Python :: 2.6', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.3', + 'Programming Language :: Python :: 3.4', 'Topic :: Scientific/Engineering :: GIS', ] ) -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/geolinks.git _______________________________________________ Pkg-grass-devel mailing list Pkg-grass-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel