{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.eczBWbOj/b1/xrootd_5.0.3-4_amd64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.eczBWbOj/b2/xrootd_5.0.3-4_amd64.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -29,15 +29,15 @@\n 693e4e7d6b1b15ff9126b2f5a1f3f56b 44596 libdevel optional libxrootd-server-dev_5.0.3-4_amd64.deb\n 0264fc38ef1c73fa379c4d1d7a8ded10 1130564 debug optional python3-xrootd-dbgsym_5.0.3-4_amd64.deb\n 7e6d1294c942e3e3360579301a86e749 83580 python optional python3-xrootd_5.0.3-4_amd64.deb\n 29948252d0c69180dd427d403c7ec9e2 1174332 debug optional xrootd-client-dbgsym_5.0.3-4_amd64.deb\n 1330ff7d64df1b521adaf33e8400f879 178916 debug optional xrootd-client-plugins-dbgsym_5.0.3-4_amd64.deb\n a791da0308a0a82695cab6eb9df1dec5 16228 libs optional xrootd-client-plugins_5.0.3-4_amd64.deb\n 14cefde5648d428aae4785de98e5140c 113444 net optional xrootd-client_5.0.3-4_amd64.deb\n- d8b0f1dd845df451ae6d03416d5a90cc 74271448 doc optional xrootd-doc_5.0.3-4_all.deb\n+ 97df6d61c10e7764057beddd2f9b56c6 74271468 doc optional xrootd-doc_5.0.3-4_all.deb\n 88441cba7ba08dfaa47f175124e7825c 33664 debug optional xrootd-fuse-dbgsym_5.0.3-4_amd64.deb\n 722a4299d46fa1a8419ee0f468d774b1 16608 net optional xrootd-fuse_5.0.3-4_amd64.deb\n ab995a3a391c8199933e345795881897 907052 debug optional xrootd-plugins-dbgsym_5.0.3-4_amd64.deb\n f20c195c7c80d7266371fabe99f17505 217072 libs optional xrootd-plugins_5.0.3-4_amd64.deb\n 12c2146261435dfb2348fa3f1cb28630 1447908 debug optional xrootd-server-dbgsym_5.0.3-4_amd64.deb\n 94a38917fcf47089b97934846dd62432 2425108 debug optional xrootd-server-plugins-dbgsym_5.0.3-4_amd64.deb\n efc22e14fab0fa2363774126a3a7f28e 240860 libs optional xrootd-server-plugins_5.0.3-4_amd64.deb\n"}, {"source1": "xrootd-doc_5.0.3-4_all.deb", "source2": "xrootd-doc_5.0.3-4_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2020-12-19 18:58:41.000000 debian-binary\n -rw-r--r-- 0 0 0 246624 2020-12-19 18:58:41.000000 control.tar.xz\n--rw-r--r-- 0 0 0 74024632 2020-12-19 18:58:41.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 74024652 2020-12-19 18:58:41.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./control", "source2": "./control", "unified_diff": "@@ -1,13 +1,13 @@\n Package: xrootd-doc\n Source: xrootd\n Version: 5.0.3-4\n Architecture: all\n Maintainer: Mattias Ellert \n-Installed-Size: 168570\n+Installed-Size: 168571\n Depends: libjs-sphinxdoc (>= 2.4.3-5~)\n Built-Using: sphinx (= 3.4.3-2)\n Section: doc\n Priority: optional\n Multi-Arch: foreign\n Homepage: http://xrootd.org/\n Description: Developer documentation for the xrootd libraries\n"}, {"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -12257,35 +12257,35 @@\n drwxr-xr-x 0 root (0) root (0) 0 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/_static/img/\n -rw-r--r-- 0 root (0) root (0) 2936 2020-11-10 08:42:04.000000 ./usr/share/doc/xrootd/python/_static/img/favicon.ico.gz\n -rw-r--r-- 0 root (0) root (0) 14979 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/_static/img/xrootd-200x68.png\n -rw-r--r-- 0 root (0) root (0) 90 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/_static/minus.png\n -rw-r--r-- 0 root (0) root (0) 90 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/_static/plus.png\n -rw-r--r-- 0 root (0) root (0) 4780 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/_static/pygments.css\n drwxr-xr-x 0 root (0) root (0) 0 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/examples/\n--rw-r--r-- 0 root (0) root (0) 15210 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/examples/copyprocess.html\n--rw-r--r-- 0 root (0) root (0) 20282 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/examples/file.html\n--rw-r--r-- 0 root (0) root (0) 17602 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/examples/filesystem.html\n--rw-r--r-- 0 root (0) root (0) 7946 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/examples.html\n+-rw-r--r-- 0 root (0) root (0) 15310 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/examples/copyprocess.html\n+-rw-r--r-- 0 root (0) root (0) 20410 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/examples/file.html\n+-rw-r--r-- 0 root (0) root (0) 17778 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/examples/filesystem.html\n+-rw-r--r-- 0 root (0) root (0) 8110 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/examples.html\n -rw-r--r-- 0 root (0) root (0) 19786 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/genindex.html\n--rw-r--r-- 0 root (0) root (0) 14294 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/gettingstarted.html\n--rw-r--r-- 0 root (0) root (0) 8910 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/index.html\n+-rw-r--r-- 0 root (0) root (0) 14342 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/gettingstarted.html\n+-rw-r--r-- 0 root (0) root (0) 8919 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/index.html\n -rw-r--r-- 0 root (0) root (0) 5626 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/install.html\n drwxr-xr-x 0 root (0) root (0) 0 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/modules/\n drwxr-xr-x 0 root (0) root (0) 0 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/modules/client/\n -rw-r--r-- 0 root (0) root (0) 14047 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/modules/client/copyprocess.html\n -rw-r--r-- 0 root (0) root (0) 30076 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/modules/client/file.html\n--rw-r--r-- 0 root (0) root (0) 41315 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/modules/client/filesystem.html\n+-rw-r--r-- 0 root (0) root (0) 41323 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/modules/client/filesystem.html\n -rw-r--r-- 0 root (0) root (0) 20607 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/modules/client/flags.html\n -rw-r--r-- 0 root (0) root (0) 26805 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/modules/client/responses.html\n -rw-r--r-- 0 root (0) root (0) 10113 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/modules/client/url.html\n -rw-r--r-- 0 root (0) root (0) 11768 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/modules/client/utils.html\n -rw-r--r-- 0 root (0) root (0) 1096 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/objects.inv\n -rw-r--r-- 0 root (0) root (0) 4667 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/py-modindex.html\n -rw-r--r-- 0 root (0) root (0) 3576 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/search.html\n--rw-r--r-- 0 root (0) root (0) 14101 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/searchindex.js\n+-rw-r--r-- 0 root (0) root (0) 14148 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/searchindex.js\n drwxr-xr-x 0 root (0) root (0) 0 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd-doc/\n -rw-r--r-- 0 root (0) root (0) 345 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd-doc/changelog.Debian.gz\n -rw-r--r-- 0 root (0) root (0) 8939 2020-11-16 09:50:38.000000 ./usr/share/doc/xrootd-doc/copyright\n lrwxrwxrwx 0 root (0) root (0) 0 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/_static/doctools.js -> ../../../../javascript/sphinxdoc/1.0/doctools.js\n lrwxrwxrwx 0 root (0) root (0) 0 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/_static/jquery.js -> ../../../../javascript/sphinxdoc/1.0/jquery.js\n lrwxrwxrwx 0 root (0) root (0) 0 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/_static/language_data.js -> ../../../../javascript/sphinxdoc/1.0/language_data.js\n lrwxrwxrwx 0 root (0) root (0) 0 2020-12-19 18:58:41.000000 ./usr/share/doc/xrootd/python/_static/searchtools.js -> ../../../../javascript/sphinxdoc/1.0/searchtools.js\n"}, {"source1": "./usr/share/doc/xrootd/python/examples/copyprocess.html", "source2": "./usr/share/doc/xrootd/python/examples/copyprocess.html", "unified_diff": "@@ -1,58 +1,58 @@\n \n \n \n \n \n \n \n- 3. CopyProcess examples — pyxrootd current documentation\n+ 3.3. CopyProcess examples — pyxrootd current documentation\n \n \n \n \n \n \n \n \n \n \n \n- \n+ \n \n
\n

Navigation

\n \n
\n \n
\n
\n
\n
\n \n
\n-

3. CopyProcess examples\u00b6

\n+

3.3. CopyProcess examples\u00b6

\n
\n-

3.1. Add a number of copy jobs and run them in parallel with a progress handler\u00b6

\n+

3.3.1. Add a number of copy jobs and run them in parallel with a progress handler\u00b6

\n
from XRootD import client\n \n class MyCopyProgressHandler(client.utils.CopyProgressHandler):\n   def begin(self, jobId, total, source, target):\n     print 'id: %d, total: %d' % (jobId, total)\n     print 'source: %s' % source\n     print 'target: %s' % target\n@@ -116,23 +116,23 @@\n       
\n
\n

\n \"Logo\"/\n

\n

Table of Contents

\n
    \n-
  • 3. CopyProcess examples\n \n

    Previous topic

    \n

    2. File examples

    \n+ title=\"previous chapter\">3.2. File examples

    \n

    Next topic

    \n

    1. XRootD.client.FileSystem: Filesystem-based operations

    \n \n
    \n © Copyright 2020, CERN.\n Created using Sphinx 3.4.3.\n
    \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -9,18 +9,18 @@\n \n **** Navigation ****\n * index\n * modules |\n * next |\n * previous |\n * pyxrootd_current_documentation \u00bb\n- * Examples \u00bb\n- * 3. CopyProcess examples\n-****** 3. CopyProcess examples\u00c2\u00b6 ******\n-***** 3.1. Add a number of copy jobs and run them in parallel with a progress\n+ * 3._Examples \u00bb\n+ * 3.3. CopyProcess examples\n+****** 3.3. CopyProcess examples\u00c2\u00b6 ******\n+***** 3.3.1. Add a number of copy jobs and run them in parallel with a progress\n handler\u00c2\u00b6 *****\n from XRootD import client\n \n class MyCopyProgressHandler(client.utils.CopyProgressHandler):\n def begin(self, jobId, total, source, target):\n print 'id: %d, total: %d' % (jobId, total)\n print 'source: %s' % source\n@@ -68,27 +68,27 @@\n id: 4, total: 4\n source: root://localhost//tmp/spam\n target: root://localhost//tmp/spam4\n processed: 20, total: 20\n end status: [SUCCESS]\n [Logo]\n **** Table_of_Contents ****\n- * 3._CopyProcess_examples\n- o 3.1._Add_a_number_of_copy_jobs_and_run_them_in_parallel_with_a\n+ * 3.3._CopyProcess_examples\n+ o 3.3.1._Add_a_number_of_copy_jobs_and_run_them_in_parallel_with_a\n progress_handler\n *** Previous topic ***\n-2._File_examples\n+3.2._File_examples\n *** Next topic ***\n 1._XRootD.client.FileSystem:_Filesystem-based_operations\n **** This Page ****\n * Show_Source\n **** Quick search ****\n [q ] [Go]\n **** Navigation ****\n * index\n * modules |\n * next |\n * previous |\n * pyxrootd_current_documentation \u00bb\n- * Examples \u00bb\n- * 3. CopyProcess examples\n+ * 3._Examples \u00bb\n+ * 3.3. CopyProcess examples\n \u00a9 Copyright 2020, CERN. Created using Sphinx 3.4.3.\n"}]}, {"source1": "./usr/share/doc/xrootd/python/examples/file.html", "source2": "./usr/share/doc/xrootd/python/examples/file.html", "unified_diff": "@@ -1,69 +1,69 @@\n \n \n \n \n \n \n \n- 2. File examples — pyxrootd current documentation\n+ 3.2. File examples — pyxrootd current documentation\n \n \n \n \n \n \n \n \n \n \n- \n- \n+ \n+ \n \n
    \n

    Navigation

    \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n-

    2. File examples\u00b6

    \n+

    3.2. File examples\u00b6

    \n

    This page includes some simple examples of how to use the pyxrootd File\n object to manipulate files on an xrootd server.

    \n

    We\u2019ll use the following File object as a basis for the rest of the examples:

    \n
    from XRootD import client\n from XRootD.client.flags import OpenFlags\n \n with client.File() as f:\n   f.open('root://someserver//tmp/eggs', OpenFlags.UPDATE)\n   f.write('green\\neggs\\nand\\nham\\n')\n 
    \n
    \n
    \n-

    2.1. Read a certain amount of data from a certain offset in a file\u00b6

    \n+

    3.2.1. Read a certain amount of data from a certain offset in a file\u00b6

    \n
    \n   status, data = f.read() # Reads the whole file\n   print '%r' % data\n   print f.get_property('DataServer')\n   print f.get_property('LastURL')\n   print f.get_property('ReadRecovery')\n   f.set_property('ReadRecovery', 'false')\n@@ -76,67 +76,67 @@\n 

    Produces the following output:

    \n
    'green\\neggs\\nand\\nham\\n'\n 'eggs'\n 
    \n
    \n
    \n
    \n-

    2.2. Write a chunk of data to a file\u00b6

    \n+

    3.2.2. Write a chunk of data to a file\u00b6

    \n
      data = 'spam\\n'\n   f.write(data, offset=15)\n   print f.read()\n 
    \n
    \n

    Produces the following output:

    \n
    'green\\neggs\\nand\\nspam\\n'\n 
    \n
    \n
    \n
    \n-

    2.3. Iterate over a file, delimited by newline characters\u00b6

    \n+

    3.2.3. Iterate over a file, delimited by newline characters\u00b6

    \n
      for line in f:\n     print '%r' % line\n 
    \n
    \n

    Produces the following output:

    \n
    'green\\n'\n 'eggs\\n'\n 'and\\n'\n 'spam\\n'\n 
    \n
    \n
    \n
    \n-

    2.4. Read all lines from a file into a list\u00b6

    \n+

    3.2.4. Read all lines from a file into a list\u00b6

    \n
      print '%r' % f.readline()\n   print f.readlines()\n 
    \n
    \n

    Produces the following output (Note how the first line is not returned with the\n call to readlines() because we ate it with the first call to\n readline()):

    \n
    'green\\n'\n ['eggs\\n', 'and\\n', 'spam\\n']\n 
    \n
    \n
    \n
    \n-

    2.5. Iterate over a file in chunks of the specified size\u00b6

    \n+

    3.2.5. Iterate over a file in chunks of the specified size\u00b6

    \n
      for chunk in f.readchunks(offset=0, chunksize=10):\n     print '%r' % chunk\n 
    \n
    \n

    Produces the following output:

    \n
    'green\\neggs'\n '\\nand\\nspam\\n'\n 
    \n
    \n
    \n
    \n-

    2.6. Read scattered data chunks in one operation\u00b6

    \n+

    3.2.6. Read scattered data chunks in one operation\u00b6

    \n
    \n   f.write(r'The XROOTD project aims at giving high performance, scalable '\n           +' fault tolerant access to data repositories of many kinds')\n \n   size = f.stat()[1].size\n   v = [(0, 40), (40, 40), (80, size - 80)]\n \n@@ -164,31 +164,31 @@\n       
    \n \n
    \n © Copyright 2020, CERN.\n Created using Sphinx 3.4.3.\n
    \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -9,69 +9,69 @@\n \n **** Navigation ****\n * index\n * modules |\n * next |\n * previous |\n * pyxrootd_current_documentation \u00bb\n- * Examples \u00bb\n- * 2. File examples\n-****** 2. File examples\u00c2\u00b6 ******\n+ * 3._Examples \u00bb\n+ * 3.2. File examples\n+****** 3.2. File examples\u00c2\u00b6 ******\n This page includes some simple examples of how to use the pyxrootdFileobject to\n manipulate files on an xrootd server.\n We\u00e2\u0080\u0099ll use the followingFileobject as a basis for the rest of the examples:\n from XRootD import client\n from XRootD.client.flags import OpenFlags\n \n with client.File() as f:\n f.open('root://someserver//tmp/eggs', OpenFlags.UPDATE)\n f.write('green\\neggs\\nand\\nham\\n')\n-***** 2.1. Read a certain amount of data from a certain offset in a file\u00c2\u00b6\n+***** 3.2.1. Read a certain amount of data from a certain offset in a file\u00c2\u00b6\n *****\n status, data = f.read() # Reads the whole file\n print '%r' % data\n print f.get_property('DataServer')\n print f.get_property('LastURL')\n print f.get_property('ReadRecovery')\n f.set_property('ReadRecovery', 'false')\n print f.get_property('ReadRecovery')\n \n status, data = f.read(offset=6, size=4) # Reads \"eggs\"\n print '%r' % data\n Produces the following output:\n 'green\\neggs\\nand\\nham\\n'\n 'eggs'\n-***** 2.2. Write a chunk of data to a file\u00c2\u00b6 *****\n+***** 3.2.2. Write a chunk of data to a file\u00c2\u00b6 *****\n data = 'spam\\n'\n f.write(data, offset=15)\n print f.read()\n Produces the following output:\n 'green\\neggs\\nand\\nspam\\n'\n-***** 2.3. Iterate over a file, delimited by newline characters\u00c2\u00b6 *****\n+***** 3.2.3. Iterate over a file, delimited by newline characters\u00c2\u00b6 *****\n for line in f:\n print '%r' % line\n Produces the following output:\n 'green\\n'\n 'eggs\\n'\n 'and\\n'\n 'spam\\n'\n-***** 2.4. Read all lines from a file into a list\u00c2\u00b6 *****\n+***** 3.2.4. Read all lines from a file into a list\u00c2\u00b6 *****\n print '%r' % f.readline()\n print f.readlines()\n Produces the following output (Note how the first line is not returned with the\n call to readlines() because we ate it with the first call to readline()):\n 'green\\n'\n ['eggs\\n', 'and\\n', 'spam\\n']\n-***** 2.5. Iterate over a file in chunks of the specified size\u00c2\u00b6 *****\n+***** 3.2.5. Iterate over a file in chunks of the specified size\u00c2\u00b6 *****\n for chunk in f.readchunks(offset=0, chunksize=10):\n print '%r' % chunk\n Produces the following output:\n 'green\\neggs'\n '\\nand\\nspam\\n'\n-***** 2.6. Read scattered data chunks in one operation\u00c2\u00b6 *****\n+***** 3.2.6. Read scattered data chunks in one operation\u00c2\u00b6 *****\n f.write(r'The XROOTD project aims at giving high performance, scalable '\n +' fault tolerant access to data repositories of many kinds')\n \n size = f.stat()[1].size\n v = [(0, 40), (40, 40), (80, size - 80)]\n \n status, response = f.vector_read(chunks=v)\n@@ -81,31 +81,32 @@\n print chunk\n Produces the following output:\n \n \n \n [Logo]\n **** Table_of_Contents ****\n- * 2._File_examples\n- o 2.1._Read_a_certain_amount_of_data_from_a_certain_offset_in_a_file\n- o 2.2._Write_a_chunk_of_data_to_a_file\n- o 2.3._Iterate_over_a_file,_delimited_by_newline_characters\n- o 2.4._Read_all_lines_from_a_file_into_a_list\n- o 2.5._Iterate_over_a_file_in_chunks_of_the_specified_size\n- o 2.6._Read_scattered_data_chunks_in_one_operation\n+ * 3.2._File_examples\n+ o 3.2.1._Read_a_certain_amount_of_data_from_a_certain_offset_in_a\n+ file\n+ o 3.2.2._Write_a_chunk_of_data_to_a_file\n+ o 3.2.3._Iterate_over_a_file,_delimited_by_newline_characters\n+ o 3.2.4._Read_all_lines_from_a_file_into_a_list\n+ o 3.2.5._Iterate_over_a_file_in_chunks_of_the_specified_size\n+ o 3.2.6._Read_scattered_data_chunks_in_one_operation\n *** Previous topic ***\n-1._FileSystem_examples\n+3.1._FileSystem_examples\n *** Next topic ***\n-3._CopyProcess_examples\n+3.3._CopyProcess_examples\n **** This Page ****\n * Show_Source\n **** Quick search ****\n [q ] [Go]\n **** Navigation ****\n * index\n * modules |\n * next |\n * previous |\n * pyxrootd_current_documentation \u00bb\n- * Examples \u00bb\n- * 2. File examples\n+ * 3._Examples \u00bb\n+ * 3.2. File examples\n \u00a9 Copyright 2020, CERN. Created using Sphinx 3.4.3.\n"}]}, {"source1": "./usr/share/doc/xrootd/python/examples/filesystem.html", "source2": "./usr/share/doc/xrootd/python/examples/filesystem.html", "unified_diff": "@@ -1,77 +1,77 @@\n \n \n \n \n \n \n \n- 1. FileSystem examples — pyxrootd current documentation\n+ 3.1. FileSystem examples — pyxrootd current documentation\n \n \n \n \n \n \n \n \n \n \n- \n- \n+ \n+ \n \n
    \n

    Navigation

    \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n-

    1. FileSystem examples\u00b6

    \n+

    3.1. FileSystem examples\u00b6

    \n

    This page includes some simple examples of basic usage of the pyxrootd\n FileSystem object to interact with an xrootd server.

    \n

    We\u2019ll use the following imports and FileSystem object as the basis for the\n rest of the examples:

    \n
    from XRootD import client\n from XRootD.client.flags import DirListFlags, OpenFlags, MkDirFlags, QueryCode\n \n myclient = client.FileSystem('root://someserver:1094')\n 
    \n
    \n
    \n-

    1.1. Copy a file\u00b6

    \n+

    3.1.1. Copy a file\u00b6

    \n
    status = myclient.copy('/tmp/spam', '/tmp/eggs', force=True)\n assert status[0].ok\n 
    \n
    \n

    See XRootD.client.CopyProcess if you need multiple/more configurable\n copy jobs.

    \n
    \n
    \n-

    1.2. Ask a for a directory listing\u00b6

    \n+

    3.1.2. Ask a for a directory listing\u00b6

    \n
    status, listing = myclient.dirlist('/tmp', DirListFlags.STAT)\n \n print listing.parent\n for entry in listing:\n   print "{0} {1:>10} {2}".format(entry.statinfo.modtimestr, entry.statinfo.size, entry.name)\n 
    \n
    \n@@ -79,51 +79,51 @@\n
    2013-04-12 09:46:51         20 spam\n 2013-04-05 08:23:00       4096 .xrootd\n 2013-04-12 09:33:25         20 eggs\n 
    \n
    \n
    \n
    \n-

    1.3. Make a directory\u00b6

    \n+

    3.1.3. Make a directory\u00b6

    \n
    myclient.mkdir("/tmp/some/dir", MkDirFlags.MAKEPATH)\n 
    \n
    \n
    \n
    \n-

    1.4. Delete a directory\u00b6

    \n+

    3.1.4. Delete a directory\u00b6

    \n
    print myclient.rmdir("/tmp/some/dir")\n 
    \n
    \n
    \n
    \n-

    1.5. Move/rename a file\u00b6

    \n+

    3.1.5. Move/rename a file\u00b6

    \n
    print myclient.mv("/tmp/spam", "/tmp/eggs")\n 
    \n
    \n
    \n
    \n-

    1.6. Delete a file\u00b6

    \n+

    3.1.6. Delete a file\u00b6

    \n
    print myclient.rm("/tmp/eggs")\n 
    \n
    \n
    \n
    \n-

    1.7. Locate a file\u00b6

    \n+

    3.1.7. Locate a file\u00b6

    \n
    status, locations = myclient.locate("/tmp", OpenFlags.REFRESH)\n \n print locations\n 
    \n
    \n

    Produces output similar to the following:

    \n
    <locations: [<type: 2, address: '[::127.0.0.1]:1094', accesstype: 1, is_manager: False, is_server: True>]>\n 
    \n
    \n
    \n
    \n-

    1.8. Ask the server for some information\u00b6

    \n+

    3.1.8. Ask the server for some information\u00b6

    \n
    status, response = myclient.query(QueryCode.SPACE, '/tmp')\n \n print response\n 
    \n
    \n

    Produces output similar to the following:

    \n
    oss.cgroup=public&oss.space=52844687360&oss.free=27084992512&oss.maxf=27084992512&oss.used=25759694848&oss.quota=-1\n@@ -142,33 +142,33 @@\n       
    \n \n
    \n © Copyright 2020, CERN.\n Created using Sphinx 3.4.3.\n
    \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -9,85 +9,85 @@\n \n **** Navigation ****\n * index\n * modules |\n * next |\n * previous |\n * pyxrootd_current_documentation \u00bb\n- * Examples \u00bb\n- * 1. FileSystem examples\n-****** 1. FileSystem examples\u00c2\u00b6 ******\n+ * 3._Examples \u00bb\n+ * 3.1. FileSystem examples\n+****** 3.1. FileSystem examples\u00c2\u00b6 ******\n This page includes some simple examples of basic usage of the\n pyxrootdFileSystemobject to interact with an xrootd server.\n We\u00e2\u0080\u0099ll use the following imports andFileSystemobject as the basis for the rest\n of the examples:\n from XRootD import client\n from XRootD.client.flags import DirListFlags, OpenFlags, MkDirFlags, QueryCode\n \n myclient = client.FileSystem('root://someserver:1094')\n-***** 1.1. Copy a file\u00c2\u00b6 *****\n+***** 3.1.1. Copy a file\u00c2\u00b6 *****\n status = myclient.copy('/tmp/spam', '/tmp/eggs', force=True)\n assert status[0].ok\n See XRootD.client.CopyProcess if you need multiple/more configurable copy jobs.\n-***** 1.2. Ask a for a directory listing\u00c2\u00b6 *****\n+***** 3.1.2. Ask a for a directory listing\u00c2\u00b6 *****\n status, listing = myclient.dirlist('/tmp', DirListFlags.STAT)\n \n print listing.parent\n for entry in listing:\n print \"{0} {1:>10} {2}\".format(entry.statinfo.modtimestr,\n entry.statinfo.size, entry.name)\n Produces output similar to the following:\n 2013-04-12 09:46:51 20 spam\n 2013-04-05 08:23:00 4096 .xrootd\n 2013-04-12 09:33:25 20 eggs\n-***** 1.3. Make a directory\u00c2\u00b6 *****\n+***** 3.1.3. Make a directory\u00c2\u00b6 *****\n myclient.mkdir(\"/tmp/some/dir\", MkDirFlags.MAKEPATH)\n-***** 1.4. Delete a directory\u00c2\u00b6 *****\n+***** 3.1.4. Delete a directory\u00c2\u00b6 *****\n print myclient.rmdir(\"/tmp/some/dir\")\n-***** 1.5. Move/rename a file\u00c2\u00b6 *****\n+***** 3.1.5. Move/rename a file\u00c2\u00b6 *****\n print myclient.mv(\"/tmp/spam\", \"/tmp/eggs\")\n-***** 1.6. Delete a file\u00c2\u00b6 *****\n+***** 3.1.6. Delete a file\u00c2\u00b6 *****\n print myclient.rm(\"/tmp/eggs\")\n-***** 1.7. Locate a file\u00c2\u00b6 *****\n+***** 3.1.7. Locate a file\u00c2\u00b6 *****\n status, locations = myclient.locate(\"/tmp\", OpenFlags.REFRESH)\n \n print locations\n Produces output similar to the following:\n ]>\n-***** 1.8. Ask the server for some information\u00c2\u00b6 *****\n+***** 3.1.8. Ask the server for some information\u00c2\u00b6 *****\n status, response = myclient.query(QueryCode.SPACE, '/tmp')\n \n print response\n Produces output similar to the following:\n oss.cgroup=public&oss.space=52844687360&oss.free=27084992512&oss.maxf=27084992512&oss.used=25759694848&oss.quota=-\n 1\n For more information about XRootD query codes and arguments, see the_relevant\n section_in_the_protocol_reference.\n [Logo]\n **** Table_of_Contents ****\n- * 1._FileSystem_examples\n- o 1.1._Copy_a_file\n- o 1.2._Ask_a_for_a_directory_listing\n- o 1.3._Make_a_directory\n- o 1.4._Delete_a_directory\n- o 1.5._Move/rename_a_file\n- o 1.6._Delete_a_file\n- o 1.7._Locate_a_file\n- o 1.8._Ask_the_server_for_some_information\n+ * 3.1._FileSystem_examples\n+ o 3.1.1._Copy_a_file\n+ o 3.1.2._Ask_a_for_a_directory_listing\n+ o 3.1.3._Make_a_directory\n+ o 3.1.4._Delete_a_directory\n+ o 3.1.5._Move/rename_a_file\n+ o 3.1.6._Delete_a_file\n+ o 3.1.7._Locate_a_file\n+ o 3.1.8._Ask_the_server_for_some_information\n *** Previous topic ***\n-Examples\n+3._Examples\n *** Next topic ***\n-2._File_examples\n+3.2._File_examples\n **** This Page ****\n * Show_Source\n **** Quick search ****\n [q ] [Go]\n **** Navigation ****\n * index\n * modules |\n * next |\n * previous |\n * pyxrootd_current_documentation \u00bb\n- * Examples \u00bb\n- * 1. FileSystem examples\n+ * 3._Examples \u00bb\n+ * 3.1. FileSystem examples\n \u00a9 Copyright 2020, CERN. Created using Sphinx 3.4.3.\n"}]}, {"source1": "./usr/share/doc/xrootd/python/examples.html", "source2": "./usr/share/doc/xrootd/python/examples.html", "unified_diff": "@@ -1,79 +1,79 @@\n \n \n \n \n \n \n \n- Examples — pyxrootd current documentation\n+ 3. Examples — pyxrootd current documentation\n \n \n \n \n \n \n \n \n \n \n- \n+ \n \n \n
    \n

    Navigation

    \n \n
    \n \n
    \n
    \n
    \n
    \n \n \n \n \n@@ -87,15 +87,15 @@\n \"Logo\"/\n

    \n

    Previous topic

    \n

    2. Getting Started

    \n

    Next topic

    \n

    1. FileSystem examples

    \n+ title=\"next chapter\">3.1. FileSystem examples

    \n
    \n

    This Page

    \n \n
    \n@@ -119,21 +119,21 @@\n
  • \n index
  • \n
  • \n modules |
  • \n
  • \n- next |
  • \n
  • \n previous |
  • \n
  • pyxrootd current documentation »
  • \n-
  • Examples
  • \n+
  • 3. Examples
  • \n
\n
\n
\n © Copyright 2020, CERN.\n Created using Sphinx 3.4.3.\n
\n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -9,45 +9,46 @@\n \n **** Navigation ****\n * index\n * modules |\n * next |\n * previous |\n * pyxrootd_current_documentation \u00bb\n- * Examples\n-****** Examples\u00c2\u00b6 ******\n- * 1._FileSystem_examples\n- o 1.1._Copy_a_file\n- o 1.2._Ask_a_for_a_directory_listing\n- o 1.3._Make_a_directory\n- o 1.4._Delete_a_directory\n- o 1.5._Move/rename_a_file\n- o 1.6._Delete_a_file\n- o 1.7._Locate_a_file\n- o 1.8._Ask_the_server_for_some_information\n- * 2._File_examples\n- o 2.1._Read_a_certain_amount_of_data_from_a_certain_offset_in_a_file\n- o 2.2._Write_a_chunk_of_data_to_a_file\n- o 2.3._Iterate_over_a_file,_delimited_by_newline_characters\n- o 2.4._Read_all_lines_from_a_file_into_a_list\n- o 2.5._Iterate_over_a_file_in_chunks_of_the_specified_size\n- o 2.6._Read_scattered_data_chunks_in_one_operation\n- * 3._CopyProcess_examples\n- o 3.1._Add_a_number_of_copy_jobs_and_run_them_in_parallel_with_a\n+ * 3. Examples\n+****** 3. Examples\u00c2\u00b6 ******\n+ * 3.1._FileSystem_examples\n+ o 3.1.1._Copy_a_file\n+ o 3.1.2._Ask_a_for_a_directory_listing\n+ o 3.1.3._Make_a_directory\n+ o 3.1.4._Delete_a_directory\n+ o 3.1.5._Move/rename_a_file\n+ o 3.1.6._Delete_a_file\n+ o 3.1.7._Locate_a_file\n+ o 3.1.8._Ask_the_server_for_some_information\n+ * 3.2._File_examples\n+ o 3.2.1._Read_a_certain_amount_of_data_from_a_certain_offset_in_a\n+ file\n+ o 3.2.2._Write_a_chunk_of_data_to_a_file\n+ o 3.2.3._Iterate_over_a_file,_delimited_by_newline_characters\n+ o 3.2.4._Read_all_lines_from_a_file_into_a_list\n+ o 3.2.5._Iterate_over_a_file_in_chunks_of_the_specified_size\n+ o 3.2.6._Read_scattered_data_chunks_in_one_operation\n+ * 3.3._CopyProcess_examples\n+ o 3.3.1._Add_a_number_of_copy_jobs_and_run_them_in_parallel_with_a\n progress_handler\n [Logo]\n *** Previous topic ***\n 2._Getting_Started\n *** Next topic ***\n-1._FileSystem_examples\n+3.1._FileSystem_examples\n **** This Page ****\n * Show_Source\n **** Quick search ****\n [q ] [Go]\n **** Navigation ****\n * index\n * modules |\n * next |\n * previous |\n * pyxrootd_current_documentation \u00bb\n- * Examples\n+ * 3. Examples\n \u00a9 Copyright 2020, CERN. Created using Sphinx 3.4.3.\n"}]}, {"source1": "./usr/share/doc/xrootd/python/gettingstarted.html", "source2": "./usr/share/doc/xrootd/python/gettingstarted.html", "unified_diff": "@@ -12,28 +12,28 @@\n \n \n \n \n \n \n \n- \n+ \n \n \n
\n

Navigation

\n \n@@ -151,15 +151,15 @@\n \n \n

Previous topic

\n

1. Installing pyxrootd

\n

Next topic

\n

Examples

\n+ title=\"next chapter\">3. Examples

\n
\n

This Page

\n \n
\n@@ -183,15 +183,15 @@\n
  • \n index
  • \n
  • \n modules |
  • \n
  • \n- next |
  • \n
  • \n previous |
  • \n
  • pyxrootd current documentation »
  • \n
  • 2. Getting Started
  • \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -79,15 +79,15 @@\n # 2.1.2.1._Synchronous_requests\n # 2.1.2.2._Asynchronous_requests\n # 2.1.3._Timeouts\n o 2.2._Copying_files\n *** Previous topic ***\n 1._Installing_pyxrootd\n *** Next topic ***\n-Examples\n+3._Examples\n **** This Page ****\n * Show_Source\n **** Quick search ****\n [q ] [Go]\n **** Navigation ****\n * index\n * modules |\n"}]}, {"source1": "./usr/share/doc/xrootd/python/index.html", "source2": "./usr/share/doc/xrootd/python/index.html", "unified_diff": "@@ -54,18 +54,18 @@\n
    \n
    \n
    \n

    API Reference\u00b6

    \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -19,18 +19,18 @@\n For bug reporting and issue tracking, please see the_pyxrootd_github_issue\n tracker\n ***** User Guide\u00c2\u00b6 *****\n * 1._Installing_pyxrootd\n * 2._Getting_Started\n o 2.1._File_and_FileSystem_usage\n o 2.2._Copying_files\n- * Examples\n- o 1._FileSystem_examples\n- o 2._File_examples\n- o 3._CopyProcess_examples\n+ * 3._Examples\n+ o 3.1._FileSystem_examples\n+ o 3.2._File_examples\n+ o 3.3._CopyProcess_examples\n ***** API Reference\u00c2\u00b6 *****\n * 1._XRootD.client.FileSystem:_Filesystem-based_operations\n * 2._XRootD.client.File:_File-based_operations\n * 3._XRootD.client.CopyProcess:_Copying_files\n * 4._XRootD.client.responses:_Server_response_objects\n * 5._XRootD.client.flags:_Flags_and_constants\n * 6._XRootD.client.URL:_XRootD_URL_object\n"}]}, {"source1": "./usr/share/doc/xrootd/python/modules/client/filesystem.html", "source2": "./usr/share/doc/xrootd/python/modules/client/filesystem.html", "unified_diff": "@@ -13,30 +13,30 @@\n \n \n \n \n \n \n \n- \n+ \n \n \n \n
    \n@@ -437,15 +437,15 @@\n \n \n \n \n \n

    Previous topic

    \n

    3. CopyProcess examples

    \n+ title=\"previous chapter\">3.3. CopyProcess examples

    \n

    Next topic

    \n

    2. XRootD.client.File: File-based operations

    \n \n
    \n © Copyright 2020, CERN.\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -193,15 +193,15 @@\n [Logo]\n **** Table_of_Contents ****\n * 1._XRootD.client.FileSystem:_Filesystem-based_operations\n o 1.1._Class_Reference\n # 1.1.1._Attributes\n # 1.1.2._Methods\n *** Previous topic ***\n-3._CopyProcess_examples\n+3.3._CopyProcess_examples\n *** Next topic ***\n 2._XRootD.client.File:_File-based_operations\n **** This Page ****\n * Show_Source\n **** Quick search ****\n [q ] [Go]\n **** Navigation ****\n"}]}, {"source1": "./usr/share/doc/xrootd/python/searchindex.js", "source2": "./usr/share/doc/xrootd/python/searchindex.js", "unified_diff": null, "details": [{"source1": "js-beautify {}", "source2": "js-beautify {}", "unified_diff": "@@ -767,15 +767,15 @@\n yes: 7,\n yet: 10,\n you: [3, 4, 6, 7, 8, 9, 11, 13],\n your: [4, 6, 7, 8],\n yourself: 13,\n zyx: 6\n },\n- titles: [\"Examples\", \"3. CopyProcess examples\", \"2. File examples\", \"1. FileSystem examples\", \"2. Getting Started\", \"pyxrootd: Python bindings for XRootD\", \"1. Installing pyxrootd\", \"3. XRootD.client.CopyProcess: Copying files\", \"2. XRootD.client.File: File-based operations\", \"1. XRootD.client.FileSystem: Filesystem-based operations\", \"5. XRootD.client.flags: Flags and constants\", \"4. XRootD.client.responses: Server response objects\", \"6. XRootD.client.URL: XRootD URL object\", \"7. XRootD.client.utils: Utility classes\"],\n+ titles: [\"3. Examples\", \"3.3. CopyProcess examples\", \"3.2. File examples\", \"3.1. FileSystem examples\", \"2. Getting Started\", \"pyxrootd: Python bindings for XRootD\", \"1. Installing pyxrootd\", \"3. XRootD.client.CopyProcess: Copying files\", \"2. XRootD.client.File: File-based operations\", \"1. XRootD.client.FileSystem: Filesystem-based operations\", \"5. XRootD.client.flags: Flags and constants\", \"4. XRootD.client.responses: Server response objects\", \"6. XRootD.client.URL: XRootD URL object\", \"7. XRootD.client.utils: Utility classes\"],\n titleterms: {\n \"class\": [7, 8, 9, 12, 13],\n \"return\": 4,\n add: 1,\n all: 2,\n amount: 2,\n api: 5,\n"}]}]}]}]}]}