Net::HTTP provides a rich library which can be used to build HTTP user-agents.
For more details about HTTP see RFC2616.
Net::HTTP is designed to work closely with URI. URI::HTTP#host, URI::HTTP#port
and URI::HTTP#request_uri are designed to work with Net::HTTP.
If you are only performing a few GET requests you should try OpenURI.
WWW: https://github.com/ruby/net-http
Given a set of strings, Abbrev calculates the set of unambiguous abbreviations
for those strings, and returns a hash where the keys are all the possible
abbreviations and the values are the full strings.
Thus, given words is "car" and "cone", the keys pointing to "car" would be "ca"
and "car", while those pointing to "cone" would be "co", "con", and "cone".
WWW: https://github.com/ruby/abbrev
Shellwords manipulates strings according to the word parsing rules of the UNIX
Bourne shell.
The shellwords() function was originally a port of shellwords.pl, but modified
to conform to the Shell & Utilities volume of the IEEE Std 1003.1-2008, 2016
Edition.
WWW: https://github.com/ruby/shellwords
Securerandom is an interface to secure random number generators which are
suitable for generating session keys in HTTP cookies, etc.
WWW: https://github.com/ruby/securerandom
NKF is a Ruby Extension version of nkf (Network Kanji Filter). It converts the
first argument and returns converted result. Conversion details are specified by
flags as the first argument.
WWW: https://github.com/ruby/nkf
Net::POP3 provides functionality for retrieving email via POP3, the Post Office
Protocol version 3. For details of POP3, see RFC1939.
WWW: https://github.com/ruby/net-pop
Net::FTP implements the File Transfer Protocol. If you have used a command-line
FTP program, and are familiar with the commands, you will be able to use this
class easily. Some extra features are included to take advantage of Ruby's style
and strengths.
WWW: https://github.com/ruby/net-ftp
Resolv is a thread-aware DNS resolver library written in Ruby. Resolv can handle
multiple DNS requests concurrently without blocking the entire Ruby interpreter.
WWW: https://github.com/ruby/resolv
TSort implements topological sorting using Tarjan's algorithm for strongly
connected components.
TSort is designed to be able to be used with any object which can be interpreted
as a directed graph.
TSort requires two methods to interpret an object as a graph, tsort_each_node
and tsort_each_child:
- tsort_each_node is used to iterate for all nodes over a graph.
- tsort_each_child is used to iterate for child nodes of a given node.
The equality of nodes are defined by eql? and hash since TSort uses Hash
internally.
WWW: https://github.com/ruby/tsort
Tracer outputs a source level execution trace of a Ruby program.
It does this by registering an event handler with Kernel#set_trace_func for
processing incoming events. It also provides methods for filtering unwanted
trace output (see Tracer.add_filter, Tracer.on, and Tracer.off).
WWW: https://github.com/ruby/tracer
Dir.mktmpdir creates a temporary directory. The directory is created with 0700
permission.
Application should not change the permission to make the temporary directory
accessible from other users.
WWW: https://github.com/ruby/tmpdir
When 'time' is required, Time is extended with additional methods for parsing
and converting Times.
This library extends the Time class with the following conversions between date
strings and Time objects:
- date-time defined by RFC 2822
- HTTP-date defined by RFC 2616.
- dateTime defined by XML Schema Part 2: Datatypes (ISO 8601)
- various formats handled by Date._parse
- custom formats handled by Date._strptime
WWW: https://github.com/ruby/time
Tempfile is a utility class for managing temporary files. When you create a
Tempfile object, it will create a temporary file with a unique filename. A
Tempfile objects behaves just like a File object, and you can perform all the
usual file operations on it: reading data, writing data, changing its
permissions, etc. So although this class does not explicitly document all
instance methods supported by File, you can in fact call any File instance
method on a Tempfile object.
WWW: https://github.com/ruby/tempfile
Syslog is a simple wrapper for the UNIX syslog system calls that might be handy
if you're writing a server in Ruby.
WWW: https://github.com/ruby/syslog
Shell implements an idiomatic Ruby interface for common UNIX shell commands.
It provides users the ability to execute commands with filters and pipes, like
sh/csh by using native facilities of Ruby.
WWW: https://github.com/ruby/shell
This library provides the Set class, which deals with a collection of unordered
values with no duplicates. It is a hybrid of Array's intuitive inter-operation
facilities and Hash's fast lookup.
The method to_set is added to Enumerable for convenience.
Set implements a collection of unordered values with no duplicates. This is a
hybrid of Array's intuitive inter-operation facilities and Hash's fast lookup.
Set is easy to use with Enumerable objects (implementing each). Most of the
initializer methods and binary operators accept generic Enumerable objects
besides sets and arrays. An Enumerable object can be converted to Set using the
to_set method.
WWW: https://github.com/ruby/set
PrettyPrint implements a pretty printing algorithm. It finds line breaks and
nice indentations for grouped structure.
By default, the class assumes that primitive elements are strings and each byte
in the strings have single column in width. But it can be used for other
situations by giving suitable arguments for some methods:
- newline object and space generation block for PrettyPrint.new
- optional width argument for PrettyPrint#text
- PrettyPrint#breakable
There are several candidate uses:
- text formatting using proportional fonts
- multibyte characters which has columns different to number of bytes
WWW: https://github.com/ruby/prettyprint
Pathname represents the name of a file or directory on the filesystem, but not
the file itself.
The pathname depends on the Operating System: Unix, Windows, etc. This library
works with pathnames of local OS, however non-Unix pathnames are supported
experimentally.
A Pathname can be relative or absolute. It's not until you try to reference the
file that it even matters whether the file exists or not.
Pathname is immutable. It has no method for destructive update.
The goal of this class is to manipulate file path information in a neater way
than standard Ruby provides. The examples below demonstrate the difference.
All functionality from File, FileTest, and some from Dir and FileUtils is
included, in an unsurprising way. It is essentially a facade for all of these,
and more.
WWW: https://github.com/ruby/pathname
OptionParser is a class for command-line option analysis. It is much more
advanced, yet also easier to use, than GetoptLong, and is a more Ruby-oriented
solution.
WWW: https://github.com/ruby/optparse
Fiddle is an extension to translate a foreign function interface (FFI) with
ruby.
It wraps libffi, a popular C library which provides a portable interface that
allows code written in one language to call code written in another language.
WWW: https://github.com/ruby/fiddle
Iconv is a wrapper class for the UNIX 95 iconv() function family, which
translates string between various encoding systems.
WWW: https://github.com/ruby/iconv
The Base64 module provides for the encoding (#encode64, #strict_encode64,
#urlsafe_encode64) and decoding (#decode64, #strict_decode64, #urlsafe_decode64)
of binary data using a Base64 representation.
WWW: https://github.com/ruby/base64
SPAtial GrapHs: nETworks, Topology, & Inference
Spaghetti is an open-source Python library for the analysis of network-based
spatial data. Originating from the network module in PySAL (Python Spatial
Analysis Library), it is under active development for the inclusion of newly
proposed methods for building graph-theoretic networks and the analysis of
network events.
WWW: https://pysal.org/spaghetti/
WWW: https://github.com/pysal/spaghetti
Segregation Analysis, Inference, and Decomposition with PySAL
The PySAL segregation package is a tool for analyzing patterns of urban
segregation. With only a few lines of code, segregation users can calculate over
40 segregation measures from simple to state-of-the art.
WWW: https://pysal.org/segregation/
WWW: https://github.com/pysal/segregation
Python Spatial Analysis Library Core
libpysal offers four modules that form the building blocks in many upstream
packages in the PySAL family:
- Spatial Weights: libpysal.weights
- Input-and output: libpysal.io
- Computational geometry: libpysal.cg
- Built-in example datasets libpysal.examples
WWW: https://pysal.org/libpysal/
WWW: https://github.com/pysal/libpysal
ESDA: Exploratory Spatial Data Analysis
ESDA is an open-source Python library for the exploratory analysis of spatial
data. A subpackage of PySAL (Python Spatial Analysis Library), it is under
active development and includes methods for global and local spatial
autocorrelation analysis.
WWW: https://pysal.org/esda/
WWW: https://github.com/pysal/esda
Spatial Access for PySAL
Whether you work with data in health, retail, employment or other domains,
spatial accessibility measures help identify potential spatial mismatches
between the supply and demand of services. They indicate how close demand
locations are to supply locations.
WWW: https://access.readthedocs.io/en/latest/
WWW: https://github.com/pysal/access
Gibbs sampling for spatially-correlated variance-components
This is a package to estimate spatially-correlated variance components
models/varying intercept models. In addition to a general toolkit to conduct
Gibbs sampling in Python, the package also provides an interface to PyMC3 and
CODA.
WWW: https://github.com/pysal/spvcm
Spatial Regression Models (spreg)
spreg, short for "spatial regression", is a python package to estimate
simultaneous autoregressive spatial regression models. These models are useful
when modeling processes where observations interact with one another.
WWW: https://spreg.readthedocs.io/en/latest/
WWW: https://github.com/pysal/spreg
splot provides PySAL users with a lightweight visualization interface to explore
their data and quickly iterate through static and dynamic visualisations.
splot connects spatial analysis done in PySAL to different popular visualization
toolkits like matplotlib. The splot package allows you to create both static
plots ready for publication and interactive visualizations for quick iteration
and spatial data exploration. The primary goal of splot is to enable you to
visualize popular PySAL objects and gives you different views on your spatial
analysis workflow.
WWW: https://splot.readthedocs.io/en/latest/
WWW: https://github.com/pysal/splot
Spatial Interaction Modeling Package
The Spatial Interaction Modeling (SpInt) module seeks to provide a collection of
tools to study spatial interaction processes and analyze spatial interaction
data.
The module currently supports the calibration of the 'family' of spatial
interaction models (Wilson, 1971) which are derived using an entropy maximizing
(EM) framework or the equivalent information minimizing (IM) framework. As such,
it is able to derive parameters for the following Poisson count models:
- unconstrained gravity model
- production-constrained model (origin-constrained)
- attraction-constrained model (destination-constrained)
- doubly-constrained model
WWW: https://github.com/pysal/spint
This module is an adaptation of a portion of GLM functionality from the
Statsmodels package, this it has been simplified and customized for the purposes
of serving as the base for several other PySAL modules, namely SpInt and GWR.
Currently, it supports the estimation of Gaussian, Poisson, and Logistic
regression using only iteratively weighted least squares estimation (IWLS). One
of the large differences this module and the functions avaialble in the
Statsmodels package is that the custom IWLS routine is fully sparse compatible,
which was necesary for the very sparse design matrices that arise in constrained
spatial interaction models. The somewhat limited functionality and computation
of only a subset of GLM diagnostics also decreases the computational overhead.
Another difference is that this module also supports the estimation of
QuasiPoisson models. One caveat is that this custom IWLS routine currently
generates estimates by directly solves the least squares normal equations rather
than using a more robust method like the pseudo inverse. For more robust
estimation of ill conditioned data and a fuller GLM framework we suggest using
the original GLM functionality from Statsmodels.
WWW: https://github.com/pysal/spglm
rasterstats is a Python module for summarizing geospatial raster datasets based
on vector geometries. It includes functions for zonal statistics and
interpolated point queries. The command-line interface allows for easy
interoperability with other GeoJSON tools.
WWW: https://github.com/perrygeo/python-rasterstats
Point Pattern Analysis (pointpats)
pointpats is an open-source python library for the statistical analysis of
planar point patterns. It is a subpackage of PySAL (Python Spatial Analysis
Library) and is under active development for the inclusion of many newly
proposed analytics for point patterns.
WWW: https://pointpats.readthedocs.io/en/latest/
WWW: https://github.com/pysal/pointpats