Giter Club home page Giter Club logo

overload's People

Watchers

 avatar  avatar

Forkers

mfgloger

overload's Issues

W2S: bib initials field should specify if holdings updated or not

User should be able to specify if a note that holdings have not been updated should be added to initials field:
NYPL: 901 $aW2Sbot$bCATBL$hOCLC holdings not updated
BPL: 947 $aW2Sbot$hOCLC holdings not updated

Another option would be to add this note automatically if user selects not to update holdings checkbox, or, by default check a box for the note when holdings are not being updated - this way it can always be unchecked and skipped if a particular workflow demands that.

Custom logging adapter

add a custom logging adapter that will allow to pass to Loggly a properly formatted traceback (traceback in its own field)

Charleston

new location code for branches: cn
investigate matching mechanism for this location

fix help display

currently the text in help windows splits words between lines
fix it in overload_help.py

midwest mat

create detailed scenarios for Midwest bibs with desired outcome
bpl situation may be even more difficult to untangle
skip these bibs from preprocessing initially

Unable to modify PVR templates

When modifying existing template:

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Program Files\Python27\lib\lib-tk\Tkinter.py", line 1547, in call
return self.func(*args)
...
File "C:\Program Files\Python27\lib\lib-tk\Tkinter.py", line 2634, in get
return self.tk.call(self._w, 'get', first)
TclError: bad listbox index "": must be active, anchor, end, @x,y, or a number

Source of data in the initials tag

It would be helpful to include at least source of data for W2S process in the initials tag of the output MARC records. This could help in investigating what went wrong during the processing - which workflow was used : order or ISBN only, etc.

Google API changes

A while back Google changed access token response for their authorization service. The response lists refresh_token param twice making it too long for Windows Credentials Manager to store.
The best would be to move away from oauth2client to a newer, Python 3 library such as google-auth or oauthlib. That would require though refactoring Overload to Python 3 - a large undertaking, especially considering its reliance on PyZ3950 which is Py2 only.

In the meantime, the easiest way to deal with access token response is to delete one of the refresh_token params from credentials object in the oauth2client.contrib.keyring_storage in the locked_put method.

def locked_put(self, credentials):
    """Write Credentials to file.

    Args:
        credentials: Credentials, the credentials to store.
    """

    # google updated their API auth server response, which duplicates
    # the refresh_token param, which makes credential string too long
    # for Windows credential manager
    # this is a walkaround the problem
    del credentials.token_response["refresh_token"]

    keyring.set_password(self._service_name, self._user_name,
                         credentials.to_json())

NYPL duplicates report bug

It seems NYPL duplicate report includes incorrect data. Looks like the cause is how the report is compiled and not problem with matching, Platform, or results analysis. Still, rule out of other possibilities.

910 tag for RL & BL

Update Overload to add appropriate 910 tag to each NYPL record processed based on the order fixed code.
910 $a RL
910 $a BL

Character encoding in MARC issue

see here:
{ "app": "overload", "asciTime": "2019-03-19 14:03:43,855", "fileName": "pvf_gui.py", "lineNo": "2374", "levelName": "ERROR", "message": "Unhandled error: Traceback (most recent call last):\n File \u0027v0.5.3/pvf/pvf_gui.py\u0027, line 2350, in process\n File \u0027v0.5.3/pvf/manager.py\u0027, line 234, in run_processing\n File \u0027v0.5.3/bibs/bibs.py\u0027, line 712, in repr\nUnicodeEncodeError: \u0027ascii\u0027 codec can\u0027t encode character u\u0027/xb0\u0027 in position 15: ordinal not in range(128)\n" }

W2S displays multiple matching records

Could use tabs to allow user evaluation and selection of all retrieved from Worldcat matches. Tabs could include an internal metrics showing ranking of quality of each record. Such ranking could ignore level coding in the fixed fields and focus instead on a presence of other elements (number of subject headings, classification, sources of cataloging, etc.)

PVF: unhandled error when previous destination does not longer exists

FTP:
{ "app": "overload", "asciTime": "2019-11-26 10:45:42,612", "fileName": "ftp_manager.py", "lineNo": "263", "levelName": "ERROR", "message": "Download from FTP failed: host\u003dftp.ybp.com, file on remote\u003d19901466.mrc, destination path\u003dE:/migration-invoices/19901466.mrc, transfer type\u003dbinary. Error: [Errno 2] No such file or directory: u\u0027E:/migration-invoices//19901466.mrc\u0027" } | { "app": "overload", "asciTime": "2019-11-26 10:45:42,612", "fileName": "ftp_manager.py", "lineNo": "263", "levelName": "ERROR", "message": "Download from FTP failed: host\u003dftp.ybp.com, file on remote\u003d19901466.mrc, destination path\u003dE:/migration-invoices/19901466.mrc, transfer type\u003dbinary. Error: [Errno 2] No such file or directory: u\u0027E:/migration-invoices//19901466.mrc\u0027" }

When trying to change the dst directory:
{ "app": "overload", "asciTime": "2019-11-26 10:45:42,612", "fileName": "ftp_manager.py", "lineNo": "263", "levelName": "ERROR", "message": "Download from FTP failed: host\u003dftp.ybp.com, file on remote\u003d19901466.mrc, destination path\u003dE:/migration-invoices/19901466.mrc, transfer type\u003dbinary. Error: [Errno 2] No such file or directory: u\u0027E:/migration-invoices//19901466.mrc\u0027" }

PVF:
overload-2019-11-27 07:53:57,078-pvf_gui.py-2395-ERROR-40-Unhandled error: Traceback (most recent call last):\n File 'C:/Users/[.,.]/Documents/GitHub/overload/overload/pvf/pvf_gui.py', line 2371, in process\n self.progbar, self.current_process)\n File 'C:/Users/[...]/Documents/GitHub/overload/overload/pvf/manager.py', line 513, in run_processing\n write_marc21(fh_new, bib)\n File 'C:/Users/[...]/Documents/GitHub/overload/overload/bibs/bibs.py', line 27, in write_marc21\n writer.close()\nUnboundLocalError: local variable 'writer' referenced before assignment\n

replace OCLC's api code with bookops-worldcat modified to py2

bookops-worldcat is not compatible with python 2, but it can be adapted for overload project.

This is only a temporary solution. The goal, in near future, should be to update entire code of the overload to python 3, but this requires careful planning. The biggest obstacle is overload's reliance on PyZ3950 module, available only in py2 and not actively maintained (no chance for py3 update).

NYPL RL ISBN W2S workflow

Develop a workflow for NYPL RL materials where source of data are ISBNs alone (no order records in Sierra). Use provided default coding for ReCap.

Option to add order record data

for WC 2 Sierra, where there is no order record, there should be an option to enter the information to insert into items for the whole batch
i.e.
loc=input("Enter LOC code:")
itype=input("Enter Item type:")

auto processed by internal note

Add automatically a "Processed by" internal note to every order.
Internal note in template should create second internal note.

Typo in gui_report.py

Change vednor to vendor
line 371
def populate_sierra_data(self, widget, data):
l1 = " {}\n".format(data["title"])
l2 = " bib #: {}, ord #: {} Vednor note: {}\n".format(
data["sierraId"], data["oid"], data["venNote"],
)

More requests logging details

Improve Platform/Z3950 logging data to ease debugging and troubleshooting. In particular, provide response with endpoint/keyword in one entry for easy searching. At the moment request entry includes endpoint/keyword, but response entry lacks this data making it cumbersome to view events when they are mixed with other library app loggers.

W2S: indicate how each record was searched

Worldcat queries should include all available identifiers. Currently if the source of data is Sierra export, W2S will attempt to extract OCLC #, LC #, ISBN, etc. and query Worldcat in this order, stopping if a hit was found. Instead, W2S should keep searching, retrieve results for each query, dedup results, order them, and present to user for selection under separate tab. Each records should have info how it was retrieved, i.e. by OCLC #, ISBN, etc.

BILINGUAL call numbers NYPL obsolete

nypl_calnum.py
if order_data
lines 86-99
elif order_data.callLabel == "bil":
subfields.extend(["f", "BILINGUAL"])

NYPL does not use BILINGUAL as a classmark

Color change in report

Change the color of the 082 to darkgoldenrod from chocolate so it it stands out better from call number in tomato

Line 452 in gui_report
)
widget.tag_config(
"highlight_brown",
font=("tahoma", "10", "bold"),
foreground="darkgoldenrod",
)

PVF validators enhancement

validators should log types of validation errors and data that fails
this will provide information to improve the validation (weeding out false positives)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.