1
0

python.rb 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. module Docs
  2. class Python < FileScraper
  3. self.type = 'python'
  4. self.root_path = 'library/index.html'
  5. self.links = {
  6. home: 'https://www.python.org/',
  7. code: 'https://github.com/python/cpython'
  8. }
  9. options[:only_patterns] = [/\Alibrary\//]
  10. options[:skip] = %w(
  11. library/2to3.html
  12. library/formatter.html
  13. library/index.html
  14. library/intro.html
  15. library/undoc.html
  16. library/unittest.mock-examples.html
  17. library/sunau.html)
  18. options[:attribution] = <<-HTML
  19. &copy; 2001&ndash;2020 Python Software Foundation<br>
  20. Licensed under the PSF License.
  21. HTML
  22. version '3.8' do # docs.python.org/3.8/download.html
  23. self.release = '3.8.1'
  24. self.base_url = 'https://docs.python.org/3.8/'
  25. html_filters.push 'python/entries_v3', 'sphinx/clean_html', 'python/clean_html'
  26. end
  27. version '3.7' do # docs.python.org/3.7/download.html
  28. self.release = '3.7.6'
  29. self.base_url = 'https://docs.python.org/3.7/'
  30. html_filters.push 'python/entries_v3', 'sphinx/clean_html', 'python/clean_html'
  31. end
  32. version '3.6' do # docs.python.org/3.6/download.html
  33. self.release = '3.6.10'
  34. self.base_url = 'https://docs.python.org/3.6/'
  35. html_filters.push 'python/entries_v3', 'sphinx/clean_html', 'python/clean_html'
  36. end
  37. version '3.5' do # docs.python.org/3.5/download.html
  38. self.release = '3.5.9'
  39. self.base_url = 'https://docs.python.org/3.5/'
  40. html_filters.push 'python/entries_v3', 'sphinx/clean_html', 'python/clean_html'
  41. end
  42. version '2.7' do # docs.python.org/2.7/download.html
  43. self.release = '2.7.17'
  44. self.base_url = 'https://docs.python.org/2.7/'
  45. html_filters.push 'python/entries_v2', 'sphinx/clean_html', 'python/clean_html'
  46. end
  47. def get_latest_version(opts)
  48. doc = fetch_doc('https://docs.python.org/', opts)
  49. doc.at_css('title').content.split(' ')[0]
  50. end
  51. end
  52. end