Do you want to cite SDO Specifications in BibTeX format?
.BibTeX
citations for SDO specifications
If you ever wondered how do you generate BibTex
style citations for 3GPP TS or TR in your research article, then you can consider use the tool sdo-citations
.
Installing sdo-citations
Just do a pip install sdo-citations
Usage
- Go to the 3GPP Portal Specification page
- Generate the list of specifications you want and export to a excel file
- Download to Excel and save file
- Run
sdo-citations -i exported.xlsx -o 3gpp.bib
- Use in LaTeX.
(.venv) /tmp/ sdo-citations -i test.xlsx -o test.bib
Optionally use the provided *.bib
directly.
Sample Output
techreport{3gpp.23.003,
author = {3GPP},
institution = {{3rd Generation Partnership Project (3GPP)}},
number = {23.003},
title = {{Numbering, addressing and identification}},
type = {Technical Specification (TS)},
url = {http://www.3gpp.org/DynaReport/23003.htm}
}
@techreport{3gpp.23.008,
author = {3GPP},
institution = {{3rd Generation Partnership Project (3GPP)}},
number = {23.008},
title = {{Organization of subscriber data}},
type = {Technical Specification (TS)},
url = {http://www.3gpp.org/DynaReport/23008.htm}
}
Origin story & Acknowledgements
If you are reading this section, it is pretty obvious that you are like me and you are interested in the origin story of this tool. So without further ado, here it goes..
As noted in the project page, this tool is a fork of martisak/3gpp-citations. The reason for the fork is pretty simple. This original tool is not installable due to various broken dependencies and due to this error :
$ pip install 3gpp-citations
Defaulting to user installation because normal site-packages is not writeable
Collecting 3gpp-citations
Downloading 3gpp-citations-1.1.4.tar.gz (14 kB)
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [3 lines of output]
/usr/lib/python3.10/site-packages/setuptools/__init__.py:85: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. Requirements should be satisfied by a PEP 517 installer. If you are using pip, you can try `pip install --use-pep517`.
dist.fetch_build_eggs(dist.setup_requires)
error in 3gpp-citations setup command: 'extras_require' must be a dictionary whose values are strings or lists of strings containing valid project/version requirement specifiers.
[end of output]
$ pip install 3gpp-citations --use-pep517
Defaulting to user installation because normal site-packages is not writeable
Collecting 3gpp-citations
Using cached 3gpp-citations-1.1.4.tar.gz (14 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Installing backend dependencies ... done
Preparing metadata (pyproject.toml) ... error
error: subprocess-exited-with-error
× Preparing metadata (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [1 lines of output]
error in 3gpp-citations setup command: 'extras_require' must be a dictionary whose values are strings or lists of strings containing valid project/version requirement specifiers.
[end of output]
Though my initial intentions were to fix this issue, but found myself onto a rabbit hole 🤯 . So decided to fork the repo, clean up the structure little bit and published under a new name since it ended up a significant revamp.
Wasted ~3 hrs testing against TestPyPi index, only to later realize that lxml==4.9.3
package is not available etc.
Learnings
If you are planning to test your installations using TestPyPi
index, then make sure that your dependencies are also available in TestPyPi
index. Else you will be trying to solve the errors that never existed in the first place 🤦🏻♂️
I also publish a newsletter where I share my techo adventures in the intersection of Telecom, AI/ML, SW Engineering and Distributed systems. If you like getting my post delivered directly to your inbox whenever I publish, then consider subscribing to my substack.
I pinky promise 🤙🏻 . I won’t sell your emails!