Coder Social home page Coder Social logo

colrev-environment / colrev Goto Github PK

View Code? Open in Web Editor NEW
20.0 7.0 22.0 20.97 MB

CoLRev: An open-source environment for collaborative reviews

Home Page: https://colrev.readthedocs.io

License: MIT License

Python 90.19% TeX 9.35% Jupyter Notebook 0.10% HTML 0.19% CSS 0.08% Dockerfile 0.07% Shell 0.02%
research literature systematic-literature-review systematic-review reproducible-research openscience open-science

colrev's People

Contributors

allcontributors[bot] avatar antonfrisch avatar cohen2000 avatar dandobriceanu avatar dengdenglele avatar dependabot[bot] avatar djogof avatar einfachjessi avatar frxdericz avatar geritwagner avatar github-actions[bot] avatar janus678 avatar julianprester avatar katharinaernst avatar louislangenhan avatar luminouslynx avatar malouschmidt avatar manojpandey avatar mhlbrsimon avatar ossendorfluca avatar peteer98 avatar pre-commit-ci[bot] avatar robertahr avatar thomasfleischmann avatar tmahmood avatar user123projekt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

colrev's Issues

feat: search queries

Feature Request

Describe the Feature Request

Distinguish: database-specific query and post-retrieval selection query

Describe Preferred Solution

Describe Alternatives

Related Code

Additional Context

If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)

bug: KeyError in colrev prep

Bug Report

colrev version: 0.6.0

Current behavior:

Key Error when running colrev prep

multiprocess.pool.RemoteTraceback:
"""
Traceback (most recent call last):
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/multiprocess/pool.py", line 125, in worker
    result = (True, func(*args, **kwds))
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/multiprocess/pool.py", line 48, in mapstar
    return list(map(*args))
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/pathos/helpers/mp_helper.py", line 15, in <lambda>
    func = lambda args: f(*args)
  File "/home/julian/colrev-env/colrev/colrev/ops/prep.py", line 211, in prepare
    preparation_record = endpoint.prepare(self, preparation_record)
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/timeout_decorator/timeout_decorator.py", line 92, in new_function
    return timeout_wrapper(*args, **kwargs)
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/timeout_decorator/timeout_decorator.py", line 152, in __call__
    return self.value
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/timeout_decorator/timeout_decorator.py", line 175, in value
    raise load
KeyError: 'colrev_status'
"""

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/bin/colrev", line 5, in <module>
    main()
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 828, in __call__
    return self.main(*args, **kwargs)
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 781, in main
    rv = self.invoke(ctx)
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 1227, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 1046, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 590, in invoke
    return callback(*args, **kwargs)
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/julian/colrev-env/colrev/colrev/ui_cli/cli.py", line 446, in prep
    prep_operation.main(keep_ids=keep_ids)
  File "/home/julian/colrev-env/colrev/colrev/ops/prep.py", line 734, in main
    prepared_records = pool.map(self.prepare, preparation_data)
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/pathos/multiprocessing.py", line 139, in map
    return _pool.map(star(f), zip(*args)) # chunksize
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/multiprocess/pool.py", line 364, in map
    return self._map_async(func, iterable, mapstar, chunksize).get()
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/multiprocess/pool.py", line 771, in get
    raise self._value
KeyError: 'colrev_status'

Steps to reproduce:

colrev prep

dev: unit tests

pytest (focusing on records.py/review_dataset.py first)

pytests: how should we store cases that we fixed (e.g., erroneous matches of conference/journal versions, errors in preparation?)

Separate tests for

  • colrev workflow
  • the reference implementation (based on a comprehensive dataset)

Project initialisation: file `pre-commit` not found

Issue description

Initialising a project (even examples) fails with:

FileNotFoundError: [Errno 2] No such file or directory: 'pre-commit'

Expected behavior

It should "initialise" the project?

Actual behavior

$ colrev init --example
Setup files
Setup git
pre-commit install...
Traceback (most recent call last):
  File "/home/bahman/.local/bin/colrev", line 8, in <module>
    sys.exit(main())
  File "/home/bahman/.local/lib/python3.8/site-packages/click/core.py", line 1128, in __call__
    return self.main(*args, **kwargs)
  File "/home/bahman/.local/lib/python3.8/site-packages/click/core.py", line 1053, in main
    rv = self.invoke(ctx)
  File "/home/bahman/.local/lib/python3.8/site-packages/click/core.py", line 1659, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/bahman/.local/lib/python3.8/site-packages/click/core.py", line 1395, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/bahman/.local/lib/python3.8/site-packages/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/home/bahman/.local/lib/python3.8/site-packages/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/bahman/workspace/colrev/colrev/colrev/cli.py", line 139, in init
    Initializer(
  File "/home/bahman/workspace/colrev/core/colrev_core/init.py", line 40, in __init__
    self.__setup_git()
  File "/home/bahman/workspace/colrev/core/colrev_core/init.py", line 287, in __setup_git
    check_call(script_to_call, stdout=DEVNULL, stderr=STDOUT)
  File "/usr/lib/python3.8/subprocess.py", line 359, in check_call
    retcode = call(*popenargs, **kwargs)
  File "/usr/lib/python3.8/subprocess.py", line 340, in call
    with Popen(*popenargs, **kwargs) as p:
  File "/usr/lib/python3.8/subprocess.py", line 858, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.8/subprocess.py", line 1704, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'pre-commit'

Steps to reproduce the problem (copy of the commit message report)

Run colrev init --example or colrev init in an empty directory.

Versions

  • colrev_core: 709cf61
  • colrev: fe27cdc

feat: service bot

Feature Request

Describe the Feature Request

Explore the possibility of a review service bot (automatically triggering the next operations). This may be particularly relevant for a potential colrev shell (e.g., using python cmd), see #112 .

Describe Preferred Solution

Describe Alternatives

Related Code

Additional Context

If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)

dev: dedupe refactoring

Refactor dedupe.py (possibly merging apply_merges and apply_manual_duplicate_decisions; offering prevent_same_source_merges/merge_safeguards parameters)

  • Check if colrev_id is still used/generated in active_learning_dedup_io

feat: colrev validate

Feature Request

Describe the Feature Request

Implement and test colrev validate (part of the workflow)

Develop validation workflow: cli and maybe in a web-ui (code markers: "gh_issue #57").
Focus on prep/dedupe (cli) for 0.7.0.

Describe Preferred Solution

Describe Alternatives

Related Code

Additional Context

If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)

dev: distribute

The items in the distribute operation are marked in the code (code markers: "gh_issue #69").

feat: data endpoint: github pages

Feature Request

Describe the Feature Request

Provide a data endpoint that automatically creates a github pages site

Describe Preferred Solution

Describe Alternatives

Related Code

Additional Context

If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)

dev: revise instructions (advisor)

The instructions should be simplified (in colrev status), their order should reflect the importance of instructions, the advisor should receive instructions from package_endpoints (especially for data), and there should guidelines (standard data structures) to ensure a consistent user experience (code markers: "gh_issue #67").

dev: user tests

Start sharing the tool with users/running user tests. Add results below:

2022-10-06 PE, DS

  • CoLRev seems to be particularly useful for extending/updating reviews
  • It was not clear how the synthesis works (the manuscript etc.). This issue may partially be explained by technical issues in the session (Zoom).

2022-11-10 OP

  • One use case would be to use recommender systems in colrev repositories (prescreen/screen).
  • The ambition to achieve perfect metadata quality (through curations) is very promising and should be communicated more prominently.

2022-12-13 AGO, BW

  • Walk through

2022-12-26 LW

  • The operations could explain more transparently what happens in the background/what the available options are (possibly linking to the docs)
  • colrev retrieve should display instructions on adding search results (especially in the first round)
  • colrev prep could indicate that "curated" means that the "quality is checked by CoLRev community curators"
  • links to docs/available options
  • short explanations of operations
  • clarify that "Created commit" means that the operation was completed (e.g., "Prescreen operation completed")
  • introduce a status -v (verbose-mode) providing the full printout on the collaboration/checks/pip venv (distinguishing verbose mode from debug mode)
  • status: the label for "next operations" should be more explicit (than "review project")
  • screen/prescreen: illustrate (and explain) what to enter into the note field/the criteria fields (upon adding second criterion: "Add another criterion")
  • colrev data: explain where the manuscript is/how to create a git version

2023-01-13 GP

  • Introduce more illustrative examples (showing md_man_prep, dedupe, ...)
  • Create a table comparing colrev to similar tools (such as covidence) to highlight the differences/key strengths (see ESMARConf video)

2023-01-24 LT

  • Indicate that colrev validate is optional.
  • Colrev status: suggest the next high-level operation in addition to potential low-level operations, e.g., suggest colrev screen and colrev pdf-prep-man
  • The "curated" is unclear in colrev status
  • prescreen: remove the empty line/add "ID: " and "Paper i (of j)"
  • pdf-get: provide an info on the location of data/pdfs
  • each operation: print number-to-process at the beginning (to help users make sense of the output/outcomes)
  • Simplify the examples in screen (only suggest one "inclusion_criterion (alternatively: exclusion_criterion)")
  • data/manuscript: enumerate (instead of bullet points)
  • Bug: show "Review iteration completed..." immediately (after moving the records in the paper.md)

2023-01-25 BW

  • Provide functionality to import existing review projects. See #113
  • Generate charts (e.g., html/pandas-based charts for the screen and data extraction), perhaps as part of reports. See #130
  • Develop an initial dashboard (containing a burn-down chart to show the progress and keep users motivated). See #130

2023-02-08 MS

  • UI would be important
  • It should be transparent which fields are searched (by SearchSources.run_search()) - standardized overviews would be helpful (which fields are supported/how).
  • Provide a url-based search for local-index? (search -a "url....")
  • Clarify how to reuse other colrev projects (e.g., clone and reset colrev_status to md_processed vs. add colrev_project as a SearchSource) - create a separate docs page on reuse.
  • It would be interesting to identify cases where paper a extends paper b (see #119).
  • PDF storage (between projects) is redundant. Users should be informed about how to share the PDFs.
  • Instead of OpenSearch, sqlite or duckDB could be used (avoiding the Dependency of Docker).

2023-02-12 BW

  • NamedTemporaryFile throws OSErorrs on Mac/Fedora
  • Update the docs/installation with instructions related to the setup on different platforms (e.g., on Fedora, it may be necessary to install Docker Engine instead of Docker Desktop, on Ubuntu, python3.0-dev, python3.0-venv, gcc may be required)
  • colrev init could propose different defaults (depending on the platform/preference for Docker vs more efficient alternatives).
  • Python versions > 3.9 should be supported
  • The Docker dependencies slow-down colrev on different platforms and should be optional (especially the core-functionality/the local-index and OpenSearch) #123

2023-02-16 CT

  • The colrev validation for prep did not show the right screen.
  • It would be helpful if the validation displayed information on how to undo changes/commits before opening gitk.
  • prescreen-cli: for the quit-option: state that it saves the changes.
  • prescreen-cli: upon continuing the prescreen, don't require -f
  • Don't display the unpaywall retrieval error.
  • Offer a command "colrev pdfs --dir" to open the pdf directory.
  • pdf-get-man: check whether the pdf exists. Add quit/skip options.
  • pdfs --discard did not discard the pdf-prep-man records.
  • It would be more intuitive if the colrev status uses the same terms as the operations ("retrieve" instead of "Metadata retrieval").
  • The screen-cli explanation could make it more transparent what data (string/selection) would be expected in the criteria (examples).
  • In the screen-cli, the decision (include/exclude) should be displayed after entering decisions on the individual criteria.
  • In the prescreen-cli, it would be helpful to display the research question/objective (if available) to make it easier for users to specify the prescreen-rationale.
  • When running the colrev retrieve, there is a lot of output and to read/understand the explanations, users need to scroll up. It would be helpful if the elements are displayed step-by-step (continuing with Enter), at least at the first time.

TODO : get feedback from librarians

feat: settings web editor fixes

Feature Request

  • Updating the colrev_version field to 0.6.0
  • Add field (boolean) in pdf_prep: keep_backup_of_pdfs
  • Replacement of some float 1.0 values by 1 (upon saving the settings.json).
  • Screening criteria: if criterion type is not changed (remains "inclusion_criterion" in the web settings editor), it is saved as "" in the settings.json.
  • Adding the option to directly open the add/edit search source wizard from cli

feat: large-scale curations

Feature Request

Describe the Feature Request

Explore the possibility of creating curations on a large scale (e.g., all crossref-indexed journals).

Describe Preferred Solution

Describe Alternatives

Related Code

Additional Context

If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)

feat: parallel independent operations

Feature Request

Describe the Feature Request

Provide the possibility to conduct a parallel independent prescreen/screen/data

Describe Preferred Solution

Describe Alternatives

Related Code

Additional Context

If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)

dev: built_in/data/bibliography_export

Feature Request

Describe the Feature Request

Provide data endpoints for the most popular reference managers:

  • Zotero
  • Endnote
  • Mendeley
  • Citavi
  • Jabref

Items related to built_in/data/bibliography_export are marked in the code (code markers: "gh_issue #70").

Describe Preferred Solution

Describe Alternatives

Related Code

Additional Context

If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)

feat: colrev sync/distribute

Feature Request

Describe the Feature Request

Develop and test colrev sync/distribute
colrev sync: analyze a non-colrev project reference section for duplicates (based on the index), ...

Describe Preferred Solution

Describe Alternatives

Related Code

Additional Context

If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)

Status not shown

Issue description

colrev status not showing repository status.

Expected behavior

colrev status should show the status of a new or existing colrev repository.

Actual behavior

Status is not shown and instead an error is thrown:

Traceback (most recent call last):
  File "/home/julian/.local/bin/colrev", line 11, in <module>
    load_entry_point('colrev', 'console_scripts', 'colrev')()
  File "/home/julian/.local/lib/python3.8/site-packages/click/core.py", line 1137, in __call__
    return self.main(*args, **kwargs)
  File "/home/julian/.local/lib/python3.8/site-packages/click/core.py", line 1062, in main
    rv = self.invoke(ctx)
  File "/home/julian/.local/lib/python3.8/site-packages/click/core.py", line 1668, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/julian/.local/lib/python3.8/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/julian/.local/lib/python3.8/site-packages/click/core.py", line 763, in invoke
    return __callback(*args, **kwargs)
  File "/home/julian/.local/lib/python3.8/site-packages/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/julian/colrev/colrev/cli.py", line 283, in status
    ret_check = STATUS.REVIEW_MANAGER.check_repo()
  File "/home/julian/.local/lib/python3.8/site-packages/colrev_core/review_manager.py", line 589, in check_repo
    check_script["script"]()
  File "/home/julian/.local/lib/python3.8/site-packages/colrev_core/review_manager.py", line 269, in build_docker_images
    repo_tags = [x.attrs.get("RepoTags", "") for x in client.images.list()]
AttributeError: 'function' object has no attribute 'list'

Steps to reproduce the problem (copy of the commit message report)

Run colrev status in new or existing repository.

feat: pubmed api (search/preparation)

Feature Request

Describe the Feature Request

Support the pubmed api for search and preparation

Describe Preferred Solution

Describe Alternatives

Related Code

Additional Context

If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)

bug: NotImplementedError

Bug Report

colrev version: 0.5.0

Current behavior:

Traceback (most recent call last):
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/bin/colrev", line 5, in <module>
    main()
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 828, in __call__
    return self.main(*args, **kwargs)
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 781, in main
    rv = self.invoke(ctx)
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 1227, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 1046, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 590, in invoke
    return callback(*args, **kwargs)
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/julian/colrev-env/colrev/colrev/ui_cli/cli.py", line 122, in init
    colrev.review_manager.ReviewManager.get_init_operation(
  File "/home/julian/colrev-env/colrev/colrev/review_manager.py", line 351, in get_init_operation
    return colrev.ops.init.Initializer(**kwargs)
  File "/home/julian/colrev-env/colrev/colrev/ops/init.py", line 53, in __init__
    self.__check_init_precondition()
  File "/home/julian/colrev-env/colrev/colrev/ops/init.py", line 99, in __check_init_precondition
    environment_manager = colrev.env.environment_manager.EnvironmentManager()
  File "/home/julian/colrev-env/colrev/colrev/env/environment_manager.py", line 49, in __init__
    self.local_registry = self.load_local_registry()
  File "/home/julian/colrev-env/colrev/colrev/env/environment_manager.py", line 57, in load_local_registry
    local_registry_df = pd.json_normalize(safe_load(file))
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/pandas/io/json/_normalize.py", line 446, in _json_normalize
    raise NotImplementedError
NotImplementedError

Expected behavior:

Should create a new colrev repository

Steps to reproduce:

colrev init

Related code:

insert short code snippets here

Other information:

feat: colrev team

Feature Request

Describe the Feature Request

colrev team --show (including contributions) / --add (invite through github) / --remove

Describe Preferred Solution

Describe Alternatives

Related Code

Additional Context

If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)

dev: architecture review

Improvements based on codementor review

  • linters
  • update file/directory structure
  • review_manager: get_x_operation() problems
  • systematically use exceptions
  • consolidate code related to database_connectors and search_sources

feat: corrections

Feature Request

Describe the Feature Request

Push record corrections to a fork and create a pull request

The correction operation needs development of the following items (code markers: "gh_issue #63"):

  • Should only essential changes be exported (identifying metadata)?
  • How to deal with non-masterdata corrections?
  • Simplify code and check for potential performance improvements.
  • How to deal with removal or merging of records?
  • Develop and test the pull-request path (e.g., when the update branch already exists).

Describe Preferred Solution

Describe Alternatives

Related Code

Additional Context

If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)

feat: R package

Feature Request

Describe the Feature Request

Provide an R package (wrapping colrev data access).

Describe Preferred Solution

Describe Alternatives

Related Code

See CoLRevR

Additional Context

If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)

dev: manual

Update the user manual

The step summaries should give users an overview of the methodological aspects, indicate how they connect to the operations (implementation), and explain the essential data management aspects (e.g., state transitions, where files are stored/where they can be added/found). The basic preconditions (e.g., search terms), options (e.g., skipping the screen or completing it retrospectively, or in parallel) should be explained. More specific options (such as extensions/external tools) and best practices (maybe in the form of next steps, e.g., for init/share with the team) should be covered in the operations pages.

  • Indicate that the specific implementation/functionality depends on the settings and link to the default settings/documentation (especially in the data operation)
  • Merge #92 before working on the issue.
  • Determine default structure for summary pages of operations (e.g., description (illustration of state transitions and git diff/changes), parameters, and methodological sources)
  • Clarify whether an operation leads to state transitions, adds records,. ..
  • In each operation, we may link to the available package_endpoints (allowing users to understand how colrev can be extended)
  • Mention that colrev merge focuses on prescreen/screen reconciliation (merging of parallel-independent, computational processing operations is not yet supported). For parallel independent data, users need to rely on git merges for now (for merging csvs, use daff, otherwise, reconciliation should focus on categorical data more than numerical data?)
  • Check settings and describe the most relevant ones

feat: colrev reporting

Feature Request

Describe the Feature Request

Provide a convenient operation that supports the reporting and justification of the review methods

Describe Preferred Solution

Describe Alternatives

Related Code

Additional Context

The report package in R could serve as an inspiration.

If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)

feat: curation guidelines

Feature Request

Describe the Feature Request

Provide guidelines for curating records; update colrev_cml_assistant to poetry

Describe Preferred Solution

Describe Alternatives

Related Code

Additional Context

If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)

dev: testing

There are a few remaining items for testing (code markers: "gh_issue #65").

bug: ModuleNotFoundError: No module named 'flask'

Bug Report

colrev version: 0.5.0

Current behavior:

Traceback (most recent call last):
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/bin/colrev", line 5, in <module>
    main()
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 828, in __call__
    return self.main(*args, **kwargs)
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 781, in main
    rv = self.invoke(ctx)
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 1227, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 1046, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 590, in invoke
    return callback(*args, **kwargs)
  File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/julian/colrev-env/colrev/colrev/ui_cli/cli.py", line 114, in init
    import colrev.ui_web.settings_editor
  File "/home/julian/colrev-env/colrev/colrev/ui_web/settings_editor.py", line 10, in <module>
    from flask import Flask
ModuleNotFoundError: No module named 'flask'

Expected behavior:

Should create a new colrev repository

Steps to reproduce:

colrev init

Related code:

insert short code snippets here

Other information:

dev: language handling

The handling of languages (detection, consistent storage of language-fields in records, consideration in dedupe) needs improvement (code markers: "gh_issue #64").

feat: colrev merge

Feature Request

Describe the Feature Request

Facilitate merging of branches (including the reconciliation of parallel independent operations/see git merge driver), write a merge-driver for status.yaml? for corrections.bib?
https://www.julianburr.de/til/custom-git-merge-drivers/
https://gregmicek.com/software-coding/2020/01/13/how-to-write-a-custom-git-merge-driver/
https://gist.github.com/seanh/378623

Describe Preferred Solution

Describe Alternatives

Related Code

Additional Context

If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)

dev: search

Items for improvement include (code markers: "gh_issue #68").:

  • Prevent sources with identical filenames (exception)
  • Get search_type and identifier from SearchSource
  • Implement parameter/search query validation

feat: package manager

Feature Request

Describe the Feature Request

Mechanism for discovery and installation of packages (instead of simple scripts). The handling of packages (registration lookup/discovery and versioning) needs improvement (code markers: "gh_issue #66"). Package descriptions (for registration) may use this example.

Describe Preferred Solution

Describe Alternatives

Related Code

Additional Context

If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)

dev: refactor pdf-prep

Pdf-prep (detection of first/last pages) should be refactored (e.g., colrev_pdf_ids instead of text-strings)

dev: pdf_get/unpaywall

Check: unpaywall downloads fail relatively often despite correct links (example). Also retrieve and display unpaywall links in pdf-get-man-cli.

feat: reference-manager endpoints

Feature Request

Describe the Feature Request

Provide data endpoints for the most popular reference managers:

  • Zotero
  • Endnote
  • Mendeley
  • Citavi
  • Jabref

Describe Preferred Solution

Describe Alternatives

Related Code

Additional Context

If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)

feat: settings: web editor

Feature Request

Describe the Feature Request

Provide a web-based editor for the project settings (called upon colrev init)

Describe Preferred Solution

Project settings can be modified via a web-based UI

Describe Alternatives

Currently, settings can only be modified directly in the json file

Related Code

Additional Context

feat: dedupe active learning parameters

Feature Request

Describe the Feature Request

Complete the simulations (optimal parameters of the active learning setup)

Related issues are marked in the code (code markers: "gh_issue #37").

Describe Preferred Solution

Describe Alternatives

Related Code

Additional Context

If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)

colrev init breaks without project title

Issue description

When calling colrev init the following AttriuteError is thrown:

Traceback (most recent call last):
  File "/home/julian/.local/bin/colrev", line 11, in <module>
    load_entry_point('colrev', 'console_scripts', 'colrev')()
  File "/home/julian/.local/lib/python3.8/site-packages/click/core.py", line 1137, in __call__
    return self.main(*args, **kwargs)
  File "/home/julian/.local/lib/python3.8/site-packages/click/core.py", line 1062, in main
    rv = self.invoke(ctx)
  File "/home/julian/.local/lib/python3.8/site-packages/click/core.py", line 1668, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/julian/.local/lib/python3.8/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/julian/.local/lib/python3.8/site-packages/click/core.py", line 763, in invoke
    return __callback(*args, **kwargs)
  File "/home/julian/.local/lib/python3.8/site-packages/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/julian/colrev/colrev/cli.py", line 167, in init
    Initializer(name, SHARE_STAT_REQ)
  File "/home/julian/colrev_core/colrev_core/init.py", line 22, in __init__
    self.__setup_files()
  File "/home/julian/colrev_core/colrev_core/init.py", line 67, in __setup_files
    Path("readme.md"), "{{project_title}}", self.project_title.rstrip(" ")
AttributeError: 'NoneType' object has no attribute 'rstrip'

Potential fixes

At the moment the -n flag in colrev cli is not required so a project can be set up without a name leading to the error. We can either require a name when calling colrev cli or we could potentially keep the -n flag optional as is and use the project directory name as the default name for the project if none was given?

dev: pre/screen table

Items related to improvements of (pre)screens based on tables are marked in the code (code markers: "gh_issue #73").

feat: curations: add prep rule for volume/issue requirements

Feature Request

For curated repositories, a prep rule should ensure that records are not marked as md_prepared if volume or issue fields are missing (requirements for volumes/issues, possibly depending on the year of publication, should be specified in the script).

dev: code refactoring

Pylint

  • deactivated rules
  • move get_toc_key to Record
  • unify public methods of record.py, review_dataset.py, review_manager.py

renaming

  • process > operation
  • process_model > state_model
  • settings.py Configuration > Settings

feat: curation: retrieve/link website metadata

Feature Request

Describe the Feature Request

Retrieve metadata from url-field and automatically link/check correspondence (for curations)

Describe Preferred Solution

Describe Alternatives

Related Code

Additional Context

If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)

feat: doi list

Feature Request

Describe the Feature Request

Allow the doi field to contain a list (of electronic/in-print versions); update (curation) retrieval in the search accordingly

Describe Preferred Solution

Describe Alternatives

Related Code

Additional Context

If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)

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.