Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python.announce > #3283

[ANN] get-reader 1.0.0 stable release

Path csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail
From Shawn Brown <03sjbrown@gmail.com>
Newsgroups comp.lang.python.announce
Subject [ANN] get-reader 1.0.0 stable release
Date Sat, 28 Dec 2019 20:57:12 -0500
Lines 84
Approved python-announce-list@python.org
Message-ID <157758799587.8676.python-announce-list@python.org> (permalink)
Reply-To python-list@python.org
Mime-Version 1.0
Content-Type text/plain; charset="UTF-8"
X-Trace news.uni-berlin.de rZJMbEEWbBnaIjnFe7ZZxA1sKTLRETnXqpMOqRK7qQ6A==
X-Spam-Status OK 0.000
X-Spam-Evidence '*H*': 1.00; '*S*': 0.00; 'url:github': 0.03; '>>>': 0.03; 'objects': 0.05; 'pip': 0.05; 'url-ip:151.101.0.223/32': 0.05; 'url-ip:151.101.128.223/32': 0.05; 'url- ip:151.101.192.223/32': 0.05; 'url-ip:151.101.64.223/32': 0.05; 'tests': 0.07; 'url:project': 0.07; 'url:pypi': 0.07; '&gt;&gt;&gt;': 0.09; 'connection.': 0.09; 'optional': 0.09; 'pandas': 0.09; 'skip:` 10': 0.09; 'subject:ANN': 0.09; 'url- ip:192.30/16': 0.09; 'install': 0.10; 'python': 0.12; 'context': 0.14; '2020,': 0.16; 'apache': 0.16; 'closed.': 0.16; 'deleted,': 0.16; 'dependencies': 0.16; 'dependency': 0.16; 'freely': 0.16; 'iterator': 0.16; 'package:': 0.16; 'projects:': 0.16; 'stable': 0.16; 'statement:': 0.16; 'subject:release': 0.16; 'versions.': 0.16; 'to:addr:python-announce-list': 0.19; 'subject:] ': 0.21; 'file.': 0.21; 'url-ip:151.101.0/24': 0.22; 'url- ip:151.101.128/24': 0.22; 'url-ip:151.101.192/24': 0.22; 'url- ip:151.101.64/24': 0.22; 'runs': 0.23; 'versions': 0.26; 'explicitly': 0.27; 'row': 0.27; 'example': 0.27; 'import': 0.27; 'message-id:@mail.gmail.com': 0.29; 'url-ip:151.101/16': 0.29; 'url-ip:151/8': 0.29; 'returns': 0.29; "doesn't": 0.29; '...': 0.30; 'using': 0.30; 'module': 0.30; 'received:google.com': 0.31; 'code': 0.31; 'files': 0.31; 'from:addr:gmail.com': 0.32; 'version': 0.33; 'interface': 0.33; 'those': 0.34; 'continue': 0.35; 'ecosystem': 0.35; 'finish': 0.35; 'reads': 0.35; 'tested': 0.35; 'use': 0.35; 'subject:[': 0.35; 'include': 0.37; 'handling': 0.37; 'older': 0.37; 'run': 0.39; 'single': 0.39; 'skip:u 10': 0.40; 'returned': 0.60; 'through': 0.61; 'skip:g 20': 0.61; 'directly': 0.61; 'reading': 0.62; 'long': 0.62; 'your': 0.63; 'sql': 0.64; 'under': 0.65; 'reader': 0.65; 'subject:get': 0.65; 'january': 0.66; 'automated': 0.68; 'existing': 0.71; 'ability': 0.76; 'easy': 0.80; 'etc.),': 0.84; 'manager:': 0.84; 'seamless': 0.84; 'database': 0.86; 'incorporate': 0.91
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=7vn7h++db1BpbDcIV4KxdKWM8hq9wOK6Wrl4ELte/Yo=; b=gy5jAYrnnlAfb290QS+eOFpSsHwpLFvlCKAjsk/277BiavXNyqzNtHoeRudV4+feKU blmBrBYeE70AUQRG3TeB6wrD/ftaP4O2xlsii6Ie5fvPwODNKOpkqfgWduOS8fKqesrj /mb7sQrLA0EBqnzl46o7Px/RKn1spCdUmSFTZulOBRY9D6VZkblOD/oaBMsVTPjBO5l3 RNuqFoSlBGnirk96DSf0Wo24EDuq/oI51yNdajiPx/dQPahrRUvaSgI5xac2WCbmj8Lp CUT6enPJ7fjjq3rY8Gn05AKBOGbWWDScrzAapmoz4is9hrDmDdoSMqFazAeU1R6TKmAW 5Pjw==
X-Google-DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=7vn7h++db1BpbDcIV4KxdKWM8hq9wOK6Wrl4ELte/Yo=; b=CJ6kEt1zOGoaSrYS0shLImUBp/08nRpRCMdmHaOXKcMyBViczsTpDAl+o7yWCuDbsd 9hcORtRmuMMh518Bo1l9Oi7FbHTt2TyR7CsPRvDh5pCSgCEGPjHuWJNSOl8PRUHJR1e3 dnc62Wn2yUBeu2HBs68PQbuo4uOrqhZehWVg8L3qLRDyEC5BrOEkvYocm7NOL7TyjN8h k187dJnHylAhUTxNBfTu1jBx3JTMAnT6NVAs8lfdiaFDdHwOx0oFPxyc/bjtxf6ZXszs 2bXHBSQzd5Wuyiy4pROBJRtWLec4oY9oyUEaTWE6evOZBJ+Eg//JHhb5JEcgpKlD+ZE+ j77g==
X-Gm-Message-State APjAAAX2uhUwYsTFg1wAk7VgSQQbVS2JoEA/0NM4fgvpizp2eq4lCBBa Xa8mVMMwSOIP+oeRPtHkZZ9hR7dqMGttLk+FCNWUbRQN
X-Google-Smtp-Source APXvYqwe0F6o7ZzjGuwkmYiroQgmq/lO1PZEaij5LWg+QLlD1RjzvM8ZzHNe7EL5n5SrePagH3TdqsMQpBL9u3/tl3o=
X-Received by 2002:a17:907:212f:: with SMTP id qo15mr37624021ejb.245.1577584843513; Sat, 28 Dec 2019 18:00:43 -0800 (PST)
X-MailFrom 03sjbrown@gmail.com
X-Mailman-Rule-Hits emergency
X-Mailman-Rule-Misses dmarc-mitigation; no-senders; approved
Message-ID-Hash IRU7PKB6XEUXLLP3PG2A4PUFAWR6YHKD
X-Message-ID-Hash IRU7PKB6XEUXLLP3PG2A4PUFAWR6YHKD
X-Mailman-Approved-At Sat, 28 Dec 2019 21:53:09 -0500
X-Content-Filtered-By Mailman/MimeDel 3.3.1
X-Mailman-Version 3.3.1
Precedence list
List-Id Announcement-only list for the Python programming language <python-announce-list.python.org>
Archived-At <https://mail.python.org/archives/list/python-announce-list@python.org/message/IRU7PKB6XEUXLLP3PG2A4PUFAWR6YHKD/>
List-Archive <https://mail.python.org/archives/list/python-announce-list@python.org/>
List-Help <mailto:python-announce-list-request@python.org?subject=help>
List-Post <mailto:python-announce-list@python.org>
List-Subscribe <mailto:python-announce-list-join@python.org>
List-Unsubscribe <mailto:python-announce-list-leave@python.org>
Xref csiph.com comp.lang.python.announce:3283

Show key headers only | View raw


Happy Holidays!

The first stable release of get-reader, version 1.0.0 is
now available.

* https://pypi.org/project/get-reader/
* https://github.com/shawnbrown/get_reader


This module provides a `get_reader()` function that returns
reader objects similar to those returned by `csv.reader()`.
This package:

* reduces common boilerplate code for handling files and
  reading records
* reads data from CSV, pandas, SQL connections, MS Excel,
  DBF, and squint
* provides a single interface across Python versions (including
  seamless Unicode-aware CSV support for Python 2)
* is easy to incorporate into your own projects:
  * has no hard dependencies
  * runs on Python 2.6, 2.7, 3.2 through 3.8, PyPy, PyPy3,
    and Jython
  * is freely available under the Apache License, version 2
  * can be easily vendored directly into your codebase if you
    don't want to include it as a dependency


Some examples:

  >>> from get_reader import get_reader
  >>>
  >>> # CSV file.
  >>> reader = get_reader('myfile.csv')
  >>>
  >>> # Database connection.
  >>> connection = ...
  >>> reader = get_reader(connection, 'SELECT col1, col2 FROM mytable;')
  >>>
  >>> # Pandas DataFrame.
  >>> df = pd.DataFrame([...])
  >>> reader = get_reader(df)
  >>>
  >>> # Excel file.
  >>> reader = get_reader('myfile.xlsx', worksheet='Sheet2')

The internal file object is automatically closed when the
iterator is exhausted, when the object is deleted, or when
it is explicitly closed.


An example using a context manager:

  >>> with get_reader('myfile.csv') as reader:
  >>>     for row in reader:
  >>>         print(', '.join(row))

The internal file object is also closed when exiting a with
block even if the for-loop doesn't finish exhausting the
reader.


Install:

  The get-reader module has no hard dependencies; is tested on
  Python 2.6, 2.7, 3.2 through 3.8, PyPy, PyPy3, and Jython;
  and is freely available under the Apache License, version 2.

  You can install get_reader using pip:

    pip install get-reader

  To install optional support for MS Excel and DBF files (dBase,
  Foxpro, etc.), use the following:

    pip install get-reader[excel,dbf]


Python 2 Support Statement:

  While official support for Python 2 ends on January 1, 2020,
  this project will continue to support older versions as long
  as the existing ecosystem provides the ability to run automated
  tests on those older versions.

Back to comp.lang.python.announce | Previous | Next | Find similar | Unroll thread


Thread

[ANN] get-reader 1.0.0 stable release Shawn Brown <03sjbrown@gmail.com> - 2019-12-28 20:57 -0500

csiph-web