weigangtang-reftab 0.0.14
manage journal reference
License: MIT
Keywords: basic,reference manager

# Package Description

RefTab is used to manage reference of journal papers. It can export reference table into 1) Excel and 2) Bibtex. Excel contains hyperlink, so users can quickly open the PDF of papers. Bibtex can be recognized for LaTex.

## Functions

* `is_year_format_correct()`
* `is_author_format_correct()`
* `auto_correct_author_string()`
* `auto_fill_abbr()`
* `auto_fill_link()`
* `read_ref_workbook()`
* `merge_ref_workbook()`
* `get_pdf_list()`
* `create_df_from_pdf_name()`
* `sort_header()`
* `save_workbook_to_excel()`
* `save_df_to_excel()`
* `save_df_to_latex()`

## RefTab Class

* `__init__()`
	* two inputs required: 
		* dataframe of reference table
		* file path of readcube folder
	* generate a list of pdf file name in readcube folder
	* file path of readcube folder is used to build hyperlink to pdf
* `update()`
	* replace dataframe with new reference table
* `find_incomplete_ref()`
* `find_duplicated_ref()`
* `find_duplicated_ref_by_abbr()`
* `find_nolink_ref()`
* `find_unlisted_pdf()`
* `find_invalid_pdf_name()`
* `get_unique_keywords()`
	* find categories of papers
* `get_unique_ref()`
	* each record has an unqiue link
		* take Link (pdf name) as primary key
	* merge duplicated records
		* Keyword for multiple records were combined in a string seperate by ','
			* for example, "General Hydrology, Classification"
* `subset_ref_by_keyword()`
* `subset_ref_by_abbr()`
* `save_to_excel()`
	* allow to save as either single-sheet or multiple-sheet (separate by keyword) workbook
* `save_to_latex()`

## Data Type

* Reference Table (DataFrame)
	* Required Columnes: 1) Title, 2) Year, 3) Journal, 4) Authors, 5) Vol, 6) Pages
	* Optional Columnes: 1) Link, 2) Abbreviation, 3) Keyword
		* Link and Abberviation can be auto-filled on the basis of other columns

* Workbook (Dictionary)
	* consist of a number of dataframe
		* key = sheet name
		* values = dataframe of reference table



# Change Log

* Version 0.0.5 (2021-07-20)
	* Intialize
	* Start from 0.0.5 as previous versions are all failed
	* Remove __os__, __re__, __string__ from 'install_requires', as they are built-in packages. Issue raise up if list those packages.

* Version 0.0.6 (2021-07-20)
	* Merge scripts into __init__.py. Script can not load function from another.

* Version 0.0.7 (2021-07-21)
	* Adjust the column width of reference table.

* Version 0.0.8 (2021-07-23)
	* Add `merge_duplicated_ref()`
		* merge keywords together
		* sort keywords by alphabet
	* When export to Excel
		* Assign references with no keyword to "No Category" sheet
		* Assign references with keyword of __" * "__ to "Important" sheet

* Version 0.0.9 (2021-08-02)
	* Add `check_ref_workbook()`
		* list sheets with missing columns
		* list references with incorrect format of authors and year
		* require `tabulate` package

* Version 0.0.10 (2021-08-03)
	* Add `clean_ref_workbook()`
		* correct column of 'Authors'
		* add 'Abbr' column on the basis of columns of 'Authors' and 'Year'
		* add 'Link' (as index) on the basis of columns of 'Abbr', 'Year', and 'Journal'
	* Change `auto_correct_author_string()`
		* instead of dealing with a list of author string, now it processes a single author string
			* split author by ';'
			* correct author one by one
		* its functionality move to `auto_correct_author_column()`
		* can automatically correct three cases:
			* extra space at the beginning of each author (segement)
			* extra space at the end of each author
			* single, isolated uppercase letter not followed with '.'
	* Add `auto_correct_author_column()`

* Version 0.0.11 (2021-08-08)
	* change print color in `get_pdf_list()`

* Version 0.0.12 (2021-09-12)
	* ensure code format follow PEP 8
	* set .git to track the entire package, rather than python script only
	* add .gitignore

* Version 0.0.13 (2021-09-13)
	* change column width list to a dictionary (match with header name)
	* convert to PEP 8 code style with autopep8

* Version 0.0.13 (2021-09-14)
	* print ref with incorrect format when autofill abbreviation