{"id":23724,"library":"feedgenerator","title":"feedgenerator","description":"Standalone version of django.utils.feedgenerator for generating RSS 2.0 and Atom feeds. Current version 2.2.1, supports Python >=3.9, released under BSD license.","status":"active","version":"2.2.1","language":"python","source_language":"en","source_url":"https://github.com/getpelican/feedgenerator","tags":["rss","atom","feed","generation","syndication"],"install":[{"cmd":"pip install feedgenerator","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Required on Windows for timezone support","package":"pytz","optional":true}],"imports":[{"note":"Main class for both RSS and Atom","symbol":"SyndicationFeed","correct":"from feedgenerator import SyndicationFeed"},{"note":"Use Rss201rev2Feed, not non-existent RSSFeed","wrong":"from feedgenerator import RSSFeed","symbol":"Rss201rev2Feed","correct":"from feedgenerator import Rss201rev2Feed"},{"note":"Atom 1.0 feed class","symbol":"Atom1Feed","correct":"from feedgenerator import Atom1Feed"}],"quickstart":{"code":"from feedgenerator import SyndicationFeed\n\nfeed = SyndicationFeed(\n    title='My Blog',\n    link='https://example.com/',\n    description='A blog about stuff',\n    feed_url='https://example.com/feed.xml',\n    author_name='Author',\n    language='en'\n)\nfeed.add_item(\n    title='First Post',\n    link='https://example.com/first-post',\n    pubdate=datetime(2026, 5, 1),\n    description='This is my first post.'\n)\nrss = feed.writeString('rss')\natom = feed.writeString('atom')\nprint(rss)\nprint(atom)\n","lang":"python","description":"Create RSS and Atom feeds with optional link to feed URL."},"warnings":[{"fix":"Always set feed_url when creating an Atom feed.","message":"The default writeString method may not include all items if not all feed attributes are set. Ensure feed_url is set for Atom feeds.","severity":"gotcha","affected_versions":"all"},{"fix":"Provide both description and subtitle explicitly to avoid confusion.","message":"In older versions (<2.0), subtitles and descriptions were handled differently; since 2.0, double subtitles are fixed but description may be used as subtitle in Atom if subtitle not provided.","severity":"deprecated","affected_versions":">=2.0, <2.1"},{"fix":"Upgrade to Python >=3.9, or pin feedgenerator to 2.1.0.","message":"Python 3.7 and 3.8 support dropped in version 2.2.0. Users on those Python versions must pin to feedgenerator<2.2.0.","severity":"breaking","affected_versions":">=2.2.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use 'from feedgenerator import SyndicationFeed' after installing feedgenerator.","cause":"Misspelled or wrong package name; some users confuse with 'feedgen' or 'feedparser'.","error":"ImportError: cannot import name 'SyndicationFeed' from 'feedgenerator'"},{"fix":"Provide a valid datetime object to pubdate parameter.","cause":"pubdate or updateddate not set or set to None when item is added.","error":"AttributeError: 'NoneType' object has no attribute 'strftime'"},{"fix":"Call feed.writeString('rss') or feed.writeString('atom').","cause":"writeString expects 'rss' or 'atom' argument.","error":"TypeError: writeString() missing 1 required positional argument: 'feedtype'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}