prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Non-executable files with shebangs in the repository
  **Describe your environment**
  
  (Nothing relevant to describe)
  
  **Steps to reproduce**
  
  ```
  $ rg -l '^#!' | xargs ls -l
  -rwxr-xr-x. 1 ben ben  1420 Jul  5  2023 docs/examples/django/manage.py
  -rw-r--r--. 1 ben ben  1300 Jul  5  2023 docs/examples/opencensus-exporter-tracer/collector.py
  -rwxr-xr-x. 1 ben ben  1485 Jul  5  2023 docs/examples/opentracing/main.py
  -rwxr-xr-x. 1 ben ben   853 Jul 13  2023 scripts/build.sh
  -rwxr-xr-x. 1 ben ben  1163 Jan 22 10:06 scripts/coverage.sh
  -rwxr-xr-x. 1 ben ben 20741 Jul 13  2023 scripts/eachdist.py
  -rwxr-xr-x. 1 ben ben   215 Jul  5  2023 scripts/generate_website_docs.sh
  -rwxr-xr-x. 1 ben ben  2377 Jan 22 10:06 scripts/proto_codegen.sh
  -rwxr-xr-x. 1 ben ben  1928 Jan 22 10:06 scripts/semconv/generate.sh
  -rwxr-xr-x. 1 ben ben   945 Jul  5  2023 scripts/tracecontext-integration-test.sh
  -rw-r--r--. 1 ben ben  2519 Jan 22 11:43 tests/w3c_tracecontext_validation_server.py
  ```
  
  Note that two files have shebang lines (`#!`) but do not have the executable bit set, which makes the shebang lines useless.
  
  **What is the expected behavior?**
  
  Files should either be non-executable and have no shebang line, or be executable and have a shebang line.
  
  **What is the actual behavior?**
  
  The following files are not executable and have useless shebang lines:
  
  - `docs/examples/opencensus-exporter-tracer/collector.py`
  - `tests/w3c_tracecontext_validation_server.py`
  
  **Additional context**
  
  This is a trivial thing, but I would like to fix it in a PR – either by setting the executable bit on these two files, or by removing the useless shebang lines. Both files are “script-like,” i.e. they have `if __name__ == "__main__"` or have useful side effects. Which approach would you prefer?
  
  </issue>
  <code>
  [start of docs/examples/opencensus-exporter-tracer/collector.py]
  1 #!/usr/bin/env python3
  2 #
  3 # Copyright The OpenTelemetry Authors
  4 #
  5 # Licensed under the Apache License, Version 2.0 (the "License");
  6 # you may not use this file except in compliance with the License.
  7 # You may obtain a copy of the License at
  8 #
  9 #     http://www.apache.org/licenses/LICENSE-2.0
  10 #
  11 # Unless required by applicable law or agreed to in writing, software
  12 # distributed under the License is distributed on an "AS IS" BASIS,
  13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14 # See the License for the specific language governing permissions and
  15 # limitations under the License.
  16 
  17 from opentelemetry import trace
  18 from opentelemetry.exporter.opencensus.trace_exporter import (
  19     OpenCensusSpanExporter,
  20 )
  21 from opentelemetry.sdk.trace import TracerProvider
  22 from opentelemetry.sdk.trace.export import BatchSpanProcessor
  23 
  24 exporter = OpenCensusSpanExporter(endpoint="localhost:55678")
  25 
  26 trace.set_tracer_provider(TracerProvider())
  27 tracer = trace.get_tracer(__name__)
  28 span_processor = BatchSpanProcessor(exporter)
  29 
  30 trace.get_tracer_provider().add_span_processor(span_processor)
  31 with tracer.start_as_current_span("foo"):
  32     with tracer.start_as_current_span("bar"):
  33         with tracer.start_as_current_span("baz"):
  34             print("Hello world from OpenTelemetry Python!")
  35
  [end of docs/examples/opencensus-exporter-tracer/collector.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/docs/examples/opencensus-exporter-tracer/collector.py b/docs/examples/opencensus-exporter-tracer/collector.py
  --- a/docs/examples/opencensus-exporter-tracer/collector.py
  +++ b/docs/examples/opencensus-exporter-tracer/collector.py
  @@ -1,5 +1,3 @@
  -#!/usr/bin/env python3
  -#
   # Copyright The OpenTelemetry Authors
   #
   # Licensed under the Apache License, Version 2.0 (the "License");
  
verification_info: {"golden_diff": "diff --git a/docs/examples/opencensus-exporter-tracer/collector.py b/docs/examples/opencensus-exporter-tracer/collector.py\n--- a/docs/examples/opencensus-exporter-tracer/collector.py\n+++ b/docs/examples/opencensus-exporter-tracer/collector.py\n@@ -1,5 +1,3 @@\n-#!/usr/bin/env python3\n-#\n # Copyright The OpenTelemetry Authors\n #\n # Licensed under the Apache License, Version 2.0 (the \"License\");\n", "issue": "Non-executable files with shebangs in the repository\n**Describe your environment**\r\n\r\n(Nothing relevant to describe)\r\n\r\n**Steps to reproduce**\r\n\r\n```\r\n$ rg -l '^#!' | xargs ls -l\r\n-rwxr-xr-x. 1 ben ben  1420 Jul  5  2023 docs/examples/django/manage.py\r\n-rw-r--r--. 1 ben ben  1300 Jul  5  2023 docs/examples/opencensus-exporter-tracer/collector.py\r\n-rwxr-xr-x. 1 ben ben  1485 Jul  5  2023 docs/examples/opentracing/main.py\r\n-rwxr-xr-x. 1 ben ben   853 Jul 13  2023 scripts/build.sh\r\n-rwxr-xr-x. 1 ben ben  1163 Jan 22 10:06 scripts/coverage.sh\r\n-rwxr-xr-x. 1 ben ben 20741 Jul 13  2023 scripts/eachdist.py\r\n-rwxr-xr-x. 1 ben ben   215 Jul  5  2023 scripts/generate_website_docs.sh\r\n-rwxr-xr-x. 1 ben ben  2377 Jan 22 10:06 scripts/proto_codegen.sh\r\n-rwxr-xr-x. 1 ben ben  1928 Jan 22 10:06 scripts/semconv/generate.sh\r\n-rwxr-xr-x. 1 ben ben   945 Jul  5  2023 scripts/tracecontext-integration-test.sh\r\n-rw-r--r--. 1 ben ben  2519 Jan 22 11:43 tests/w3c_tracecontext_validation_server.py\r\n```\r\n\r\nNote that two files have shebang lines (`#!`) but do not have the executable bit set, which makes the shebang lines useless.\r\n\r\n**What is the expected behavior?**\r\n\r\nFiles should either be non-executable and have no shebang line, or be executable and have a shebang line.\r\n\r\n**What is the actual behavior?**\r\n\r\nThe following files are not executable and have useless shebang lines:\r\n\r\n- `docs/examples/opencensus-exporter-tracer/collector.py`\r\n- `tests/w3c_tracecontext_validation_server.py`\r\n\r\n**Additional context**\r\n\r\nThis is a trivial thing, but I would like to fix it in a PR \u2013 either by setting the executable bit on these two files, or by removing the useless shebang lines. Both files are \u201cscript-like,\u201d i.e. they have `if __name__ == \"__main__\"` or have useful side effects. Which approach would you prefer?\n", "before_files": [{"content": "#!/usr/bin/env python3\n#\n# Copyright The OpenTelemetry Authors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nfrom opentelemetry import trace\nfrom opentelemetry.exporter.opencensus.trace_exporter import (\n    OpenCensusSpanExporter,\n)\nfrom opentelemetry.sdk.trace import TracerProvider\nfrom opentelemetry.sdk.trace.export import BatchSpanProcessor\n\nexporter = OpenCensusSpanExporter(endpoint=\"localhost:55678\")\n\ntrace.set_tracer_provider(TracerProvider())\ntracer = trace.get_tracer(__name__)\nspan_processor = BatchSpanProcessor(exporter)\n\ntrace.get_tracer_provider().add_span_processor(span_processor)\nwith tracer.start_as_current_span(\"foo\"):\n    with tracer.start_as_current_span(\"bar\"):\n        with tracer.start_as_current_span(\"baz\"):\n            print(\"Hello world from OpenTelemetry Python!\")\n", "path": "docs/examples/opencensus-exporter-tracer/collector.py"}]}