Viswa Kumar
  • Home
  • About
    • My Background
    • My reading list
  • Research
    • Research Overview
    • Publications
  • Writing
    • Blog
    • Newsletter
    • Papershelf
    • Book Notes
  • Projects

On this page

  • Installing sdo-citations
  • Usage
    • Sample Output
  • Origin story & Acknowledgements

Do you want to cite SDO Specifications in BibTeX format?

Tools
Projects
5G
3GPP
Read this post if you are looking for a handy little tool to create .BibTeX citations for SDO specifications
Published

October 23, 2023

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

  1. Go to the 3GPP Portal Specification page
  2. Generate the list of specifications you want and export to a excel file
  3. Download to Excel and save file
  4. Run sdo-citations -i exported.xlsx -o 3gpp.bib
  5. 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.

Also this happened

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 🤦🏻‍♂️

Subscribe to Techno Adventure Newsletter

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!

Subscribe ✉️

 

Copyright 2024, Viswa Kumar