publisher_mapping = {
    "Addison Wesley Longman": "Addison-Wesley",
    "Addison-Wesley Professional": "Addison-Wesley",
    "Addison-Wesley Signature Series (Vernon)": "Addison-Wesley",
    "Auerbach Publications": "CRC Press",
    "BPB Publications": "BPB",
    "Cengage Learning": "Cengage",
    "Chapman & Hall/CRC": "CRC Press",
    "Chapman & Hall/CRC The Python Series": "CRC Press",
    "Course Technology": "Cengage",
    "CreateSpace": "Independent",
    "Createspace Independent Publishing Platform": "Independent",
    "Dan Bader": "Real Python",
    "Impackt Publishing": "Packt",
    "John Wiley & Sons": "Wiley",
    "Manning Publications Company": "Manning",
    "Manning Publications": "Manning",
    "Mastering Computer Science": "CRC Press",
    "McGraw Hill Professional": "McGraw Hill",
    "Mercury Learning and Information": "Mercury",
    "National Geographic Books": "No Starch Press",
    "O'Reilly Germany": "O'Reilly",
    "O'Reilly Media": "O'Reilly",
    "O'Reilly Media, Incorporated": "O'Reilly",
    "Oreilly & Associates Incorporated": "O'Reilly",
    "Packt Pub Limited": "Packt",
    "Packt Publishing Ltd": "Packt",
    "Packt Publishing": "Packt",
    "Packt Publishing, Limited": "Packt",
    "Pocket Primer": "Mercury",
    "Pragmatic Bookshelf": "The Pragmatic Programmers",
    "Pragmatic Programmers": "The Pragmatic Programmers",
    "Prentice-Hall PTR": "Prentice-Hall",
    "Real Python (Realpython.Com)": "Real Python",
    "Sams Publishing": "Sams",
    "Simon and Schuster": "Manning",
    "Springer Science & Business Media": "Springer",
    "Syngress Publishing": "Syngress",
    "What Every Engineer Should Know": "CRC Press",
    '"O\'Reilly Media, Inc."': "O'Reilly",
}

publishers = [
    "Addison-Wesley",
    "BPB",
    "CRC Press",
    "Cengage",
    "Manning",
    "McGraw Hill",
    "Mercury",
    "No Starch Press",
    "O'Reilly",
    "Packt",
    "Prentice-Hall",
    "Springer",
    "The Pragmatic Programmers",
    "Wiley",
]
